Domanda

Qualcuno ha qualche tipo di esperienza con la programmazione dinamica utilizzando WCF.Per programmazione dinamica intendo il consumo di runtime di WSDL.Ho trovato uno strumento/voce nel blog:http://blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx

Qualcuno qui ha trovato buoni strumenti per questo?

È stato utile?

Soluzione

Questo è uno degli aspetti più strani del WCF.Puoi creare dinamicamente una channelfactory, ma solo con un tipo noto.

Ho trovato una soluzione che non è perfetta, ma funziona:

Crea un'interfaccia, "IFoo", che contenga un singolo metodo, ad esempio Execute().Nel tuo ESB, crea dinamicamente un file ChannelFactory<IFoo> per l'endpoint a cui desideri connetterti.Impostare le proprietà di connessione (URI, ecc.).

Ora puoi collegare dinamicamente i servizi al tuo ESB, a condizione che implementino sempre l'interfaccia "IFoo".

Altri suggerimenti

L'ho fatto molto tempo fa con i servizi web SOAP.C'era uno strumento su GotDotNet che penso sia diventato Servizi WebStudio Express, che conteneva codice che ispezionava/analizzava un file WSDL e consentiva di chiamarlo.

Penso che il presupposto sia che WSDL sia noto al momento della creazione del client e non sia necessario essere collegati in fase di esecuzione.Se controlli il WSDL in fase di esecuzione, devi comunque avere una sorta di logica per decidere come generare il proxy.Perché non dovresti consumare il WSDL prima del runtime?I servizi Web dovrebbero essere abbastanza statici con un'interfaccia che non cambia una volta pubblicata.

È possibile utilizzare .NET CodeDom per generare codice per eseguire e utilizzare il servizio Web descritto da WSDL.Il WSDL può essere analizzato utilizzando le classi XML .NET standard.

In realtà sto pensando di creare un piccolo ESB, in cui un utente può aggiungere un servizio web a cui indirizzarsi in fase di esecuzione.Quindi non posso aggiungere staticamente WSDL

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top