2013-01-11 118 views
3

我有一個WCF客戶端和一個WCF服務,WCF DataContract命名空間是否需要

每一端都有一個DataContract。命名空間是我需要反序列化客戶端上的對象。

即打擊不起作用

[DataContract] 
public class Framework 
{ 
    [DataMember] 
    public string Name { get; set; } 
} 

但確實:

[DataContract(Namespace = "http//mysite.co.uk"] 
public class Framework 
{ 
    [DataMember] 
    public string Name { get; set; } 
} 

這是爲什麼?我本來以爲離開這個命名空間意味着他們都默認爲http://tempuri.org,並且都沒問題。

命名空間是必需的,這似乎很奇怪。

有沒有人對此行爲有過解釋?

回答

0

它應該默認爲tempuri命名空間,如您所述。我做了很多次,所以我知道它是有效的。我的猜測是傳入的數據正在使用命名空間http//mysite.co.uk,因此導致它失敗。 DataContract的命名空間必須與SOAP消息中使用的命名空間相匹配。

您是使用程序集還是發現來共享服務合同?也許你的合同在一端是過時的,需要刷新(通過重新運行發現或重新部署共享程序集)。

相關問題