WCF代理类

时间:2013-10-09 07:29:29

标签: c# wcf proxy

我正在开发一个项目,一个模型类,其中大多数都是从一个基类继承的,基类用带有子类类型的属性标记。

在我的Service中,函数返回一个基类的Object,该函数的实现当然会返回一个子类。

当我使用Visual Studio创建代理类时,它只会在没有任何子类的代理中创建基类,因为服务中没有直接返回子类实例的方法。

我的问题有没有办法强制代理生成器为子类生成类,即使它们没有直接在服务中使用?

1 个答案:

答案 0 :(得分:1)

使用ServiceKnownTypeAttribute:

[DataContract]
[KnownType(typeof(ResponseType1))]
[KnownType(typeof(ResponseType2))]
public class BaseResponseType
{
    ...
}

[DataContract]
public class ResponseType1: BaseResponseType
{
    ...
}

[DataContract]
public class ResponseType2: BaseResponseType
{
    ...
} 

然后你的服务操作:

[OperationContract]
BaseResponseType ProcessSomething (Something thing);