Avatar billede jonas82 Nybegynder
08. december 2009 - 15:20 Der er 5 kommentarer og
2 løsninger

Lade constructor på service tage parametre i WCF

Hej,

Jeg har en service, som jeg starter sådan her:

_duplex = new ServiceHost(typeof(MyService));
_duplex.AddServiceEndpoint(typeof(IMyService),
                new NetTcpBinding(),
                "net.tcp://localhost:8080/MyService");
_duplex.Open();

Problemet er, at jeg gerne vil sende en parameter med når en ny MyService instans starter. Fx vil jeg gerne sende en database connection streng med, som MyService kan bruge.

Nogen ideer?
Avatar billede arne_v Ekspert
08. december 2009 - 16:32 #1
Hvorfor ikke vaere kedelig og hente connection string fra app.config?
Avatar billede janus_007 Nybegynder
08. december 2009 - 21:32 #2
Ja det kan hurtigt blive svært hvis ikke du foretrækker arnes forslag.

En WCF service har ingen constructor til den slags :)

Men må vi høre hvad din tanke er med opgaven?
Avatar billede jonas82 Nybegynder
09. december 2009 - 09:08 #3
Jeg kan ikke umiddelbart bruge app.config, da jeg bruger to projekter.
- WCF Service, er i et projekt for sig selv.
- Et windows service projekt, som hoster WCF servicen, ved at referere til WCF service projektet.

WCF servicen kan så ikke lige få fat i app.config.
Avatar billede bvli Praktikant
09. december 2009 - 13:54 #4
Jo det kan den godt. Den tager fat i den app.config som hører til det appdomain den hører til. Og det vil være dit "Windows Service projekts" config-fil.

Men ellers hva' med:

MyService service = new MyService(connectionString);
(eller MyService service = new MyService();
service.ConnectionString = connectionString;)

_dublex = new ServiceHost(service, serviceAddress);

Vær opmærksom på, at der er nogle kommentarer til den overload af constructor'en til ServiceHost.
Avatar billede jonas82 Nybegynder
10. december 2009 - 10:50 #5
Jeg endte med at flytte WCf servicen over til Windows service projektet, og så bruge config filen.

Bvli tror også din metode vil virke, men så kan den kun køre som singleton (så vidt jeg har forstået)?

Tak for hjælpen. Arne og bvli det er vist rimeligt at I deler point :)

Tak.
Avatar billede arne_v Ekspert
10. december 2009 - 19:48 #6
svar fra mig
Avatar billede bvli Praktikant
13. december 2009 - 18:37 #7
Ups.. Og et forsinket fra mig..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester