动态添加对象的功能

时间:2011-08-10 18:24:57

标签: vb.net decorator

我遇到以下问题:

我从外部组件获取一个对象,我想要做的是覆盖对象的几个函数,以便改变它的部分行为。

我尝试通过装饰器继承原始对象的类并将原始对象存储为成员变量,但是我必须覆盖该对象中的所有函数。

我也无法访问对象的大部分内部数据,因此我不能将其克隆到派生对象的基类中。

所以底线是:无论如何都要覆盖几个已经实例化的对象的函数,同时保留数据而不必覆盖整个对象的功能?

谢谢,

PM

2 个答案:

答案 0 :(得分:0)

你能不继承自己的对象,然后只是添加你的方法吗?

如果无法做到这一点,我会将组件存储在变量中,然后复制所有组件方法。不是最好的解决方案,但它可以工作,我只希望组件不需要很多方法。

最后,您尝试如果您的许可协议允许使用像反射器这样的东西,可能会显示一个可能的解决方案。

答案 1 :(得分:0)

简短的回答是,否。

更长的答案是在它周围写一个包装器,是的,这意味着实现所有方法。你可以通过作曲来做到这一点。

.Net虽然具有一些动态功能,但它不是动态语言,但我不认为你的组件是动态的。