1
我嘗試傳送一個包含具有接口的子項目的DTO(WCF客戶端到WCF服務器)。WCF DTO中的接口
我的代碼:
WCF服務方法:
[OperationBehavior(TransactionScopeRequired = true)]
public void SendTest(MyTestDto testDto)
{
...
}
MyTestDto類:
[Serializable]
[DataContract(Name = "MyTestDto")]
public class MyTestDto : ITestDto
{
[DataMember(IsRequired = true, Order = 1, Name = "MyTestDto")]
[DataMemberValidation(IsRequired = true)]
public ITest Test { get; set; }
}
ITest接口:
public interface ITest
{
int Field1 {get;set;}
int Field2 {get;set,}
}
的問題是,我總是得到一個FaultException
如果我將MyTestDto從服務器傳輸到客戶端。我分析了WSDL文件,測試字段的類型爲:AnyType
。我認爲,這是問題所在。我已經用抽象類替換了ITest
,因此通信起作用(當然,我必須使用抽象類來設置ServiceKnownType
屬性)。
你能幫我嗎?爲什麼它可以與抽象類一起使用,而不是與接口一起使用?
感謝您的回答。我知道這一點,但我可以設置界面的具體類型,例如與KnownType或ServiceKnownType屬性?! – bitsmuggler 2013-02-18 08:52:22
無法通過電線發送接口;你需要聲明一個抽象類作爲基礎而不是接口。 – daryal 2013-02-18 08:55:12