2016-07-13 10 views
0

Ich habe eine MVC-App erstellt, die Methoden auf einem WCF-Dienst aufrufen wird. Ich habe die Client-App für die Verwendung von Autofac, Autofac.integration.mvc und Autofac.integration.wcf konfiguriert. Ich habe sie mit folgendem Autofac Registrierungscode arbeiten:Autofac-Clientkonfiguration

var builder = new ContainerBuilder(); 
builder 
    .Register(c => new ChannelFactory<IUserService>()) 
    .SingleInstance(); 

builder 
    .Register(c => new ChannelFactory<IUserService>(
    new BasicHttpBinding(), 
    new EndpointAddress(@"http://localhost:36763/UserService.svc"))) 
    .SingleInstance(); 

builder 
    .Register(c => c.Resolve<ChannelFactory<IUserService>>().CreateChannel()) 
    .As<IUserService>() 
    .UseWcfSafeRelease(); 

Aber ich möchte in der Lage sein, hart zu vermeiden, dass die Adresse EndPoint-Codierung. Gibt es eine Möglichkeit, dies zu tun, ohne die Endpoint-Adresse fest zu codieren?

Aktualisierung. Ich habe den unten aufgeführten Code ausprobiert, der funktioniert, ohne die Endpunktadresse fest zu codieren. Es führt jedoch eine Abhängigkeit von UserServiceClient ein.

+0

Haben Sie darüber nachgedacht, irgendwo eine Konfigurationsdatei anzulegen? app.config oder eine JSON-Datei. Sie erwähnen nicht die Version von MVC, die Sie verwenden, so dass ich nicht sagen kann, was angemessen wäre. –

+0

Ich verwende MVC 5, .NET 4.5.2. Ich nehme an, ich könnte den Wert von der web.config für den Client bekommen, aber ich hatte gehofft, dass es eine elegantere Weise geben würde, die Endpunktadresse zu bestimmen. – pjanssen007

+0

Ich habe gehört, dass es einen Weg gibt, einen Endpunkt erkennbar zu machen, aber ich habe es nicht versucht. Etwas, in das man schauen muss. –

Antwort

0

Dies ist, was für Konfigurationsdateien (und als Bonus, Konfiguration verwandelt) gemacht wurden! Die meisten CI-Server und Bereitstellungsplattformen verfügen sogar über Mechanismen zum Umschreiben von Konfigurationswerten, um Ihre Entwicklungsumgebung vor der Produktion zu schützen. Es ist nur eine gute Übung, und es gibt keinen besseren Weg, vor allem, wenn man bedenkt, dass jemand außer Ihnen vielleicht an dem, was Sie gerade bauen, arbeitet und dass Sie etwas Vertrautes an Ort und Stelle sehen wollen!