1

我有这个 Wcf 接口定义

public interface IDataToMfcV2
{       
    [OperationContract(IsOneWay = false)]
    SecurityAnswerDTO CommitDTOs(string sessionId, BasicDTO[] basicDto);        
}

现在我有不同的从 BasicDTO 派生的对象!现在我想知道,是否可以将派生对象列表发送到此调用?

因为我得到了这个例外:

由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action 'X' 的消息。这可能是因为合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。

4

2 回答 2

0

是我的错!我连接到一个完全错误的 URI!

于 2013-07-09T21:31:12.893 回答
0

您需要将ServiceKnownType属性添加到您计划使用服务发送和接收的所有派生类的服务接口。

例如

public class X : BasicDTO
public class Y : BasicDTO

[ServiceContract]
[ServiceKnownType(typeof(X))]
[ServiceKnownType(typeof(Y))]
public interface IDataToMfcV2
{       
    [OperationContract(IsOneWay = false)]
    SecurityAnswerDTO CommitDTOs(string sessionId, BasicDTO[] basicDto);        
}
于 2013-07-08T14:31:55.183 回答