我有一个Derived
类型的对象,但想拥有Base
类型的对象。通常,我可以简单地将对象强制转换为Base
的引用。但是,对于我的WCF服务,我真的只想公开Base
类。
是否有一种巧妙的方法可以将Base
转换为Derived
对象(或从Base
对象创建新的Derived
),其中动态类型为{{ 1}}?
示例:
Base
答案 0 :(得分:0)
如果您要实现的目的是隐藏Derived
类的额外属性,那么有两个选项
在第二种情况下,您应该考虑使用合成而不是继承,例如
Base
或Derived
个对象包装到一个只展示所需属性的新适配器类中恐怕没有具体的例子很难帮助你。
答案 1 :(得分:0)
如果没有其他内容出现,我将接受我自己的hackaround作为解决方案:使用AutoMapper将Derived
克隆为新的Base
:
Mapper.CreateMap<Base,Base>();
Mapper.Map<Base,Base>(objectOfTypeDerived);