【发布时间】:2015-02-06 19:43:27
【问题描述】:
我们有一个系统可以创建动态定义的对象作为处理的核心方面。我希望能够创建一个类对象并使这些对象成为此类的实例,实现该特定对象具有的所有功能。
问题是,这些对象确实需要从基类动态继承,并覆盖空方法等。本质上,我需要一些动态类结构(我建议将定义编译成适当的类模型,但那是一段距离)。我能想到的最好方法是创建一个具有一组空白属性的类实例,如果实现了这些功能,则用方法动态替换这些属性。
我还研究了 Castles DynamicProxy 方法,这可能是一条有用的路线(拦截调用并在适当的情况下对其进行操作),但这似乎比应有的复杂。
所以有什么建议吗?最好的、最类似于 .Net 的方法是什么?当我看到这个问题时,似乎应该有一个非常好的和简单的解决方案。
只是为了帮助,一个简单的例子(半伪代码 - 我知道它没有完全工作):
class thing
{
public void Process()
{
foo();
bar();
}
private foo(){}
private bar(){}
}
a=new thing() {foo=DoFoo}
b=new thing() {bar=DoBar}
我希望能够调用 a.Process 和 b.Process,并让它们都运行。请记住,这些对象有大约 20-30 个可能需要设置的属性/方法(设置它们很容易,但其中一些可能是实质性方法)
【问题讨论】: