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