WCF Proxy Class

本文关键字:Class Proxy WCF | 更新日期: 2023-09-27 18:34:43

我在一个项目中正在处理几个模型类,其中大多数都继承自一个基类,基类标有子类类型的属性。

在我的服务中,该函数返回基类的对象,该函数的实现当然会返回其中一个子类。

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

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

WCF Proxy Class

使用 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);