Pro*_*ofK 8 .net c# dynamic .net-4.0 c#-4.0
我刚刚重构了我的Services层中的几乎所有类来继承a ServiceBase,以减少初始化数据访问和其他几乎与所有服务相同的方面的重复,但是当我到达我的时候,我被阻止了RoleService,因为它必须继承从RoleProvider这样我可以配置它作为我的网站的"官方"的角色提供.
现在它有点深夜了,咖啡因就在形式上,但我想知道是否有任何方法可以使用动态对象代替派生对象,并将基础对象的所有成员添加到'派生'对象,在运行时,而不是编译时.
这甚至可以远程实现吗?
不,DynamicObject不允许从两个具体类派生,这就是多重继承,而 C# 不支持这种情况。无论是动态还是静态,您面临的问题都是相同的。如果你有Base1和Base2那彼此无关,那么一旦你Derived从派生出来Base1,那它就不可能Derived is Base2是真的。相反,您可以满足于Derived is IBase2.
我建议您使用:
与多个接口或一个具体派生和一个接口一起。要模拟多重继承,您可以:
这将实现类中的代码量限制为每个接口方法或属性仅一次转发调用。