2009-06-04 5 views

risposta

105

Utilizzando svcutil, è possibile creare interfacce e classi (contratti dati) dal WSDL.

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic) 

Questo creerà un file chiamato "your.cs" in C# (o "your.vb" in VB.NET) che contiene tutti gli elementi necessari.

Ora, è necessario creare una classe "MyService" che implementerà l'interfaccia di servizio (IServiceInterface) - o le diverse interfacce di servizio - e questa è l'istanza del server.

Ora una classe di per sé non aiuta ancora in realtà - è necessario ospitare il servizio da qualche parte. È necessario creare la propria istanza ServiceHost che ospita il servizio, configurare gli endpoint e così via oppure è possibile ospitare il servizio in IIS.

+0

Ho provato lo stesso con svcutil, ma non sono riuscito con errori. Forse hai qualche suggerimento per il mio problema: http://goo.gl/dlen – Juri

+11

"svcutil your.wsdl your.xsd" è quello che mi serviva per il mio lavoro! Grazie! –

+2

Dai un'occhiata a questa risposta per informazioni su come scaricare wsdl e xsd in un formato che piacerà a svcutil. http://stackoverflow.com/questions/286657/what-is-the-best-way-to-download-all-of-the-wsdl-files-exposed-by-a-wcf-service –

7

È possibile utilizzare svcutil.exe per generare codice client. Ciò includerebbe la definizione del contratto di servizio e eventuali contratti di dati e contratti di falla richiesti.

Quindi, è sufficiente eliminare il codice client: classi che implementano i contratti di servizio. Dovrai quindi implementarli tu stesso, al tuo servizio.

39

Ci sono buone risorse là fuori se sai cosa cercare. Prova "Contratto prima" e WCF. o "WSDL Primo" e WCF.

Ecco una selezione:

+2

Per chiunque segua la * Panoramica generale dell'articolo WSDL-First *: Prendi nota del commento che parla di ' ReplyAction = "*" '. Sembra che tu abbia bisogno di sbarazzartene. C'è una scia di spiegazioni da quel commento che dà il ragionamento, ma non l'ho letto. –

28

Usa svcutil. exe con lo switch /sc su gen erare i contratti della WCF. Questo creerà un file di codice che puoi aggiungere al tuo progetto. Conterrà tutte le interfacce e i tipi di dati necessari per creare il tuo servizio. Modificare la posizione di output utilizzando lo switch /o oppure è possibile trovare il file nella cartella in cui è stato eseguito svcutil.exe. La lingua predefinita è C# ma credo (non l'ho mai provato) dovresti poterlo cambiare usando /l:vb.

svcutil /sc "WSDL file path" 

Se il proprio WSDL ha file XSD supportati, passare quelli in come argomenti dopo il WSDL.

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path" 

Quindi creare una nuova classe che è il vostro servizio e implementare l'interfaccia del contratto appena creata.

+0

Vedere anche: [MSDN su come implementare WSDL di qualcun altro] (https://msdn.microsoft.com/en-us/library/ms735109 (v = vs.110) .aspx) – sq33G

1

Utilizzando la funzione "Add Service Reference" in Visual Studio, è possibile inserire l'indirizzo:

di file: ///path/to/wsdl/file.wsdl

E si caricherà correttamente.