WCF。如何将自定义DataContact类型添加到WCF客户端引用?

时间:2013-07-01 11:29:42

标签: c# .net wcf wcf-data-services-client

我有一个方法的WCF服务:

[OperationContract]
public bool TestCustomRequest(RequestBase request)
{
    return true;
}

在引用的类库项目中,我有两个类:

[DataContract]
public abstract class RequestBase
{
    [DataMember]
    public string Id { get; set; }

    [DataMember]
    public RequestTypeEnum RequestType { get; set; }
}

继承班级:

[DataContract]
public class CustomRequest : RequestBase
{
    [DataMember]
    public string CompanyId { get; set; }
}

当在客户端我添加服务引用时,我只能看到RequestBase类。是否可以将所有继承RequestBase的类添加到服务引用中并在客户端初始化它们?

或者我必须为每个可能的传入参数类型重载TestCustomRequest方法?

谢谢

1 个答案:

答案 0 :(得分:2)

你可以尝试:

[DataContract]
[KnownType(typeof(CustomRequest))]
public abstract class RequestBase
{
    [DataMember]
    public string Id { get; set; }

    [DataMember]
    public RequestTypeEnum RequestType { get; set; }
}