2015-11-04 65 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); 
} 

然后创建接口的实现。部署它。利润。