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.
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. –
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
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. –