2012-03-02 149 views
1

我有WCF bassicHttpBiding服务。 我的web函数正在返回一些自定义的定义类型。WCF客户端如何知道服务器类型

[DataContract] 
public class PcbInfoEntry 
{ 
    [DataMember] 
    public int ReflowPcbId { get; set; } 
    [DataMember] 
    public string PcbId { get; set; } 
} 

但实际上客户端如何知道类的定义? 生成的代理中发生了什么?

回答

4

服务器暴露了WSDL(Web服务描述语言)。只需将您的浏览器指向http://example.com/myservice/service.svc?wsdl,即可看到服务的完整定义。它公开的所有类型和方法。生成客户端代理时,svcutil.exe使用此信息生成相应的客户端代理类。

WSDL是SOAP标准。无论您的服务使用哪种语言编写,如果它公开WSDL,您都可以轻松生成客户端代理。

WCF还可以通过它实现了WS-元数据交换标准,允许客户端发现其类型一MEX终结点发布自己的元。

+0

其中坐在由我的Web方法返回的DTO的描述。因为在我的WSDL中我无法看到它。 – 2012-03-02 13:31:03

+0

@NightWalker,有在主WSDL引用/链接到其他网页,例如'HTTP://example.com/myservice/service.svc WSDL = wsdl0'和'http://example.com/myservice /service.svc?xsd = xsd0'等等。 – 2012-03-02 13:34:31

+0

是的,它有帮助。在同一领域还有一个问题。我的一个Web函数返回一些DTO,但它没有[DataContract] 属性,但我仍然在wsdl和我的客户端中看到它使用它。问题是为什么我需要[DataContract] 属性。 – 2012-03-02 13:43:01

相关问题