4 Stimmen

Dynamische Programmierung mit WCF

Hat jemand Erfahrung mit dynamischer Programmierung unter Verwendung von WCF? Mit dynamischer Programmierung meine ich Laufzeitverbrauch von WSDL's. Ich habe einen Blog-Eintrag/Tool gefunden: http://blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx

Hat hier jemand gute Tools dafür gefunden?

2voto

Cuyler Punkte 36

Dies ist einer der seltsameren Aspekte von WCF. Sie können dynamisch eine Channelfactory erstellen, aber nur mit einem bekannten Typ.

Ich habe eine Lösung gefunden, die nicht perfekt ist, aber funktioniert:

Erstellen Sie ein Interface "IFoo", das eine einzige Methode enthält, z.B. Execute(). In Ihrem ESB erstellen Sie dynamisch eine ChannelFactory für den Endpunkt, mit dem Sie verbinden möchten. Legen Sie die Verbindungseigenschaften fest (URI usw.).

Jetzt können Sie Dienste dynamisch an Ihr ESB anhängen, vorausgesetzt, dass sie immer das "IFoo"-Interface implementieren.

1voto

Brian Lyttle Punkte 14413

Ich habe das vor langer Zeit mit SOAP-Webdiensten gemacht. Es gab ein Tool auf GotDotNet, das ich glaube, dass es zu Web Services Studio Express geworden ist, das Code hatte, das eine WSDL-Datei inspizierte/analysierte und es dir erlaubte, sie aufzurufen.

Ich denke, die Annahme ist, dass die WSDL zum Zeitpunkt der Client-Erstellung bekannt ist und du nicht zur Laufzeit verbunden sein musst. Wenn du die WSDL zur Laufzeit inspizierst, musst du immer noch eine Art von Logik haben, um zu entscheiden, wie der Proxy generiert werden soll. Warum sollte man die WSDL nicht vor der Laufzeit konsumieren können? Webdienste sollen fairly statisch sein mit einer Schnittstelle, die sich nach der Veröffentlichung nicht ändert.

Du kannst .NET CodeDom verwenden, um Code zum Ausführen und Verwenden des durch die WSDL beschriebenen Webdienstes zu generieren. Die WSDL kann mit den standardmäßigen .NET-XML-Klassen analysiert werden.

0voto

khebbie Punkte 2462

Ich überlege tatsächlich, ein kleines ESB zu erstellen, bei dem ein Benutzer zur Laufzeit einen Webservice hinzufügen kann, um darauf zu routen. Daher kann ich WSDLs nicht statisch hinzufügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X