WCF Proxy aus alternativen Konfigurationsdateien initialisieren

20. Januar 2015

Manchmal ist es nötig die WCF Proxy-Einstellungen aus einer anderen Konfigurationsdateien als der app.config zu laden. Bisher war dies recht schwierig und mit viel eigenem Code verbunden.

Wenn man beispielsweise ein Plugin oder eine COM-Bibliothek für ältere Anwendungen bereitstellt und dort einen WCF Proxy nutzen will, kann man die app.config gleich vergessen. Beim Starten der AppDomain wird der Konfigurationspfad aus Dateinamen der laufenden Anwendung (.exe) + „.config“ belegt. Man hatte bisher folgende Möglichkeiten:

Mit .Net 4.5 kann man nun den Pfad der Konfiguration einfach einer Factory übergeben!

   1: Configuration config = ConfigurationManager.OpenExeConfiguration("...");  

   2: ConfigurationChannelFactory<IMyProxy> factory = new ConfigurationChannelFactory<IMyProxy>("endpointName", config, null);

   3:  

   4: //Eigene Anpassungen sind auch noch möglich!

   5: //factory.Endpoint.Behaviors.Add(myBehavior);

   6:  

   7: IMyProxy proxy = factory.CreateChannel();

PS: In vielen Beispielen wird als dritter Parameter beim Konstruktor der Factory eine neue Endpoint URL mitgegeben. Einfach leer lassen und er belegt diese mit der aus der Konfiguration.