2009-04-21 3 views
2

Ok - ziemlich grundlegende Szenario, zuvor da gewesen, schien alles so einfach - aber kann nicht genug erinnern, um herauszufinden, was ist anders an der Einrichtung in diesem bestimmten bestehenden Codebasis .Dynamic Webservice Referenz von Klassenbibliothek in Winforms App (C#)

Winforms App ruft Dll auf, die Web Service aufruft. Der Verweis in der DLL auf den Web-Service ist dynamisch. Wie bekomme ich die URI für den Web-Service in eine Winforms app.config, so kann ich es für Test, Entwicklung, Live etc. leicht ändern.

[Oh nur um es interessant zu machen, obwohl ich es nicht beachten kann , der Proxy für den Web Service muss nicht neu generiert werden, da wir ihn angepasst haben ...]

Antwort

1

Legen Sie die URL direkt in Ihrem Code fest.

YourServiceProxy service = new YourServiceProxy(); 
service.Url = ConfigurationManager.AppSettings["YourURLKey"]; 
+0

yeah - Ich bin resigniert, einige der bestehenden Code neu zu schreiben – kpollock

0

Können Sie den Web Service URI dynamisch im Code konfigurieren? Auf diese Weise können Sie den Dienst einfach so ändern, dass er auf den gewünschten Standort verweist.

Sie können die URL-Eigenschaft des Webdienstes im Code so einstellen, dass sie auf den URI zeigt, und Proxy verwenden, um den Proxy für Ihren benutzerdefinierten Proxy festzulegen.

+0

Das ist mein üblicher Weg - aber ich glaube nicht, dass der existierende DLL-Code nicht so eingerichtet ist. Angenommen, ich würde nur etwas davon umschreiben .. – kpollock

0

Was ist los mit dem Kopieren der URL aus der app.config der Bibliothek in die app.config der Windows Forms-Anwendung?

Auch werde ich stark vorschlagen, dass Sie generierten Code nie ändern. Sie können viele Anpassungen des Proxys vornehmen, indem Sie partielle Klassen verwenden. Siehe Ways to Customize your ASMX Client Proxy.

+0

Anpassung ist nicht mein Tun - für was es wert ist, stimme ich zu! – kpollock

+0

Ok, aber vielleicht kannst du es doch tun ... –