是否可以声明基本已知类型并允许所有派生类型被传输?

[ServiceContract]
public interface IService
{
    [OperationContract]
    [ServiceKnownType(typeof(BaseMsg))]
    object[] Do(BaseMsg msg);
}


是否可以在IService接口中不使用属性声明每个派生类型的情况下完成此操作?

最佳答案

不是直接的,但是如果您不介意创建非标准服务(可能只能由另一个.NET应用程序使用),则可以使用KnownTypesAttribute使用this constructor

这使您可以创建一个具有方法的Web服务,该服务可以动态地告诉它哪些类型可用于传输。然后,您可以使用反射来反映加载的程序集中的所有类型,这些类型从您的类型派生并添加它们。但这必须在服务器和客户端上都进行,以便他们彼此理解。

关于c# - C#WCF抽象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5806017/

10-12 02:57