1

我通过 WCF 公开了以下方法签名:

public void MethodA(RequestBase request)
{

}

public class RequestA : RequestBase
{

}

有一些从 RequestBase 类派生的具体类。在使用 WcfTestClient.exe 进行服务调用期间,如何将实际的具体类 (RequestA) 传递给 methodA 中的 RequestBase?

4

1 回答 1

1

您正在为您的数据合同寻找KnownType 属性:

[DataContract]
public class RequestBase
{
}

[DataContract]
[KnownType(typeof(RequestBase))]
public class RequestA : RequestBase
{
}

然后您可以传入一个RequestA对象,该对象RequestBase是服务操作的预期类型:

var requestA = new RequestA();
serviceClient.MethodA(requestA);
于 2013-09-19T17:09:32.580 回答