Vb.net 向对象动态添加功能

Vb.net 向对象动态添加功能,vb.net,decorator,Vb.net,Decorator,我有以下问题: 我从外部组件获得一个对象,我想做的是重写该对象的几个函数,以更改其部分行为 我尝试通过一个装饰器来实现这一点,从原始对象的类继承并将原始对象存储为成员变量,但是我必须重写该对象中的所有函数 我也不能访问对象的大部分内部数据,因此我不能将其克隆到派生对象的基类中 所以底线是:在保留数据而不必覆盖整个对象功能的同时,是否还要覆盖几个已经实例化的对象功能 谢谢 PM您不能继承对象本身,然后向其添加您的方法吗 如果不可能,我会将组件存储在变量中,然后复制所有组件方法。虽然不是最好的解决方

我有以下问题:

我从外部组件获得一个对象,我想做的是重写该对象的几个函数,以更改其部分行为

我尝试通过一个装饰器来实现这一点,从原始对象的类继承并将原始对象存储为成员变量,但是我必须重写该对象中的所有函数

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

所以底线是:在保留数据而不必覆盖整个对象功能的同时,是否还要覆盖几个已经实例化的对象功能

谢谢


PM

您不能继承对象本身,然后向其添加您的方法吗

如果不可能,我会将组件存储在变量中,然后复制所有组件方法。虽然不是最好的解决方案,但它会起作用,我只是希望组件不必有很多方法


最后,如果您的许可协议允许在其上使用类似reflector的东西,您是否尝试过,可能会出现一个可能的解决方案。

简单的答案是,不

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


.Net不是动态语言,尽管它有一些动态特性,但我认为您的组件不会是动态的。

您所说的继承对象本身是什么意思?另外,对象本身有大约40个方法,但我想如果最坏的情况真的发生了,我会这样做。至于你的reflector建议,你能详细说明一下吗?reflector允许你反编译DDL/exe ect,这样你就可以看到是什么组成了它。当你说组件时,它到底是什么?