2012-03-02 152 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

相關問題