2015-11-04 64 views
1

我有一個現有的wsdl和xsd文件。現在,我想創建基於現有WSDL的WCF「服務器端代碼」服務。 我知道svcutil.exe生成主機(客戶端)代碼。我不想客戶端。請,任何人能幫助我嗎?從現有WSDL創建WCF「服務器端代碼」服務的最佳方法

+0

WSDL是網絡服務描述爲一組上含有面向文檔或面向過程的信息的消息操作的端點的XML格式。它不包含服務器端代碼。如果您需要服務器端代碼,則需要在DLL上使用反彙編程序。 – Agalo

+0

您需要在WCF服務庫上使用反彙編程序。反射器:http://www.red-gate.com/products/dotnet-development/reflector/; ILSpy http://ilspy.net/; DotPeek https://www.jetbrains.com/decompiler/ – Agalo

回答

0

在我的情況下,客戶會導致他給了我與其他XSD文件,其中的類定義是一個非常特殊的WSDL文件。我只想要接口頭文件(System.SerializableAttribute,XmlTypeAttribute ...)的結構,因爲DataContract和DataMember不會在wsdl文件中給出結果。 當我使用svcutil時,我只是對齊wsdl文件一點點,但差異仍然作爲綁定,端口名稱。還有一些東西的前綴像「intf」而不是「tns」。

+0

當我使用svcutil時,我只是與wsdl文件對齊一點點,但差異仍然作爲綁定,端口名稱和其他。還有像前綴「intf」而不是「tns」等等。 –

1

使用 xsd /c /l:cs /n:Namespace.You.Want FilenameRequest.xsd FilenameResponse.xsd

產生商定的合同XML C#類。你將有類似ResponseClass.csRequestClass.cs

然後創建你的服務傳遞生成的請求類作爲消息參數。強制服務使用XmlSerializer的而不是的DataContractSerializer。類似這樣的:

[ServiceContract, XmlSerializerFormat(Style = OperationFormatStyle.Document, 
    Use = OperationFormatUse.Literal)] 
public interface IService 
{ 
    [OperationContract()] 
    ResponseClass YourRequestOperation(
     [MessageParameter(Name="NameInAgreedContract")] RequestClass rq); 
} 

然後創建接口的實現。部署它。利潤。