创建WCF"服务器端代码的最佳方式"来自现有WSDL的服务

时间:2015-11-04 17:58:55

标签: c# wcf wsdl

我有一个现有的wsdl和xsd文件。现在,我想创建WCF"服务器端代码"基于现有WSDL的服务。 我知道svcutil.exe生成主机(客户端)代码。我不想要客户端。请问,任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

出于此目的,您可以尝试使用 / out:选项svcutil

还有一个old sample here

答案 1 :(得分:1)

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

使用约定的XML合同生成c#类。您将拥有ResponseClass.csRequestClass.cs

之类的内容

然后创建服务,将生成的Request类作为消息参数传递。强制服务使用 XmlSerializer 而不是 DataContractSerializer 。像这样:

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

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

答案 2 :(得分:0)

在我的情况下,客户端会生成一个非常具体的wsdl文件,他给我提供了类定义所在的其他xsd文件。我只想要接口头的结构(System.SerializableAttribute,XmlTypeAttribute ...),因为未给出DataContract和DataMember导致wsdl文件。 当我使用svcutil时,我只是与wsdl文件对齐一点,但差异仍然是绑定,端口名称。事情前缀如" intf"而不是" tns"。