我们有一台服务器可以返回"配置",这种配置是一个庞大而复杂的类层次。
我们的应用程序由" packages"工作,这意味着我们有一个" common" base,然后有部分应用程序甚至无法安装。
这意味着配置类并非都在同一个项目中,我们的结构通常如下:
join
在其他一些项目中,有一些实现它们的类:
public class SomeObject{
public IEnumerable<ISomeObjectChild> Childs{get;set;}
}
public interface SomeObjectChild{
//[...]
}
有工厂来实例化那些孩子,一切都很好。
现在我们必须使用WCF通过网络传输这种配置。
我的问题是,我知道我应该指明可能实现public class SomeChildImplementation: ISomeObjectChild{
//[...]
}
的类型。我知道通常,我们应该用ISomeObjectChild
声明它们,但这是不可能的:
那么我怎么能指出可能的实现方式呢?
(在这种情况下,它有一个界面,但我还有其他一些带有抽象类的案例)。
答案 0 :(得分:0)
KnownTypesAttribute有另一个构造函数,可用于指定将返回KnownTypes数组的方法,请参阅here
此方法的实现可能取决于您希望的动态。在某些配置文件中配置要支持的类型,或使用System.Reflection
扫描实现ISomeObjectChild
的类