C# WCF代理类

C# WCF代理类,c#,wcf,proxy,C#,Wcf,Proxy,在我正在处理的一个项目中,有两个模型类,其中大多数继承自一个基类,基类用带有子类类型的属性标记 在我的服务中,函数返回基类的一个对象,函数的实现当然会返回其中一个子类 当我使用Visual Studio创建代理类时,它只会在代理中创建基类,而不创建任何子类,因为服务中没有直接返回子类实例的方法 我的问题是,有没有一种方法可以强制代理生成器为子类生成类,即使它们没有直接用于服务?使用ServiceKnownTypeAttribute: [DataContract] [KnownType(typeo

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

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

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


我的问题是,有没有一种方法可以强制代理生成器为子类生成类,即使它们没有直接用于服务?

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

你设法解决了你的问题吗?