gpt4 book ai didi

c# - 在 C# 中动态组合类

转载 作者:太空狗 更新时间:2023-10-29 20:36:49 27 4
gpt4 key购买 nike

是否可以从其他类中包含的方法动态组合一个类?

例如。 A、B 和 C 类的公共(public)方法的名称易于识别。它们需要被提取并添加到 D 类。然后包含所有实现逻辑的 D 类可以进一步传递到只接受 D 类的单个实例并将这些方法动态绑定(bind)到其他函数的系统。

需要说明的是,这不是我要寻找的继承。我的意思是说不同名称的方法需要塞进一个类中。我传递给它的系统理解这些命名约定并动态绑定(bind)它们(对我来说它是一个黑盒子)。

我正在沿着从 A、B 和 C 中提取方法的路径,将它们与内存中 D 类的源代码动态组合并将它们编译成一个新的 D 类,然后创建 D 的实例并将其传递转发。

public class A{  public void EXPORT_A_DoSomething(){} }
public class B{ public void EXPORT_B_DoSomethingElse(){}}
public class C{ public void EXPORT_C_DoAnything(){}}
//should become
public class D{
public void EXPORT_A_DoSomething(){}
public void EXPORT_B_DoSomethingElse(){}
public void EXPORT_C_DoAnything(){}
}

有没有办法从类 A、B 和 C 中提取 MethodInfo,并以某种方式将它们直接附加到类 D?如果是怎么办?

最佳答案

我会考虑使用 C# Class compiler .据我所知,您可以构建字符串中的代码,并且可以获得程序集作为输出。这使您能够通过反射调用方法。

在我指定的 MSDN 链接上有一个示例,但一旦我找到我的项目,我会在这里模拟一个。

关于c# - 在 C# 中动态组合类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com