在运行时调用方法的各种方法是什么?
答
的C#4.0 dynamic
功能将是做到这一点的最简单的方法。在一个非常真实的意义上,dynamic
仅仅是“反射”的一个包装。这是一个很好的好的包装,但是,这可能是你最好的选择。
其他方式,大约增加了难度级别:
- 使用第三方的反思 库。不知道这些天有什么 。
- 编写自己的 反射代码。
- 使用CodeDOM至 创建代码,该代码调用您要调用的方法 。
- Emit IL确实是 与CodeDOM生成的代码的 差不多。
- 创建C# 源代码,然后将 编译为可以调用的程序集, 然后调用所需的 方法。
最后三个不适合昏厥。您最好的选择是使用dynamic
或编写自己的反射代码。如果我在三年前编写dynamic
时,我正在编写类似的代码,我会用它。
答
您可以使用Reflection调用直到运行时才知道名称的函数。下面是一些文档:
http://msdn.microsoft.com/en-us/library/f7ykdhsy%28VS.80%29.aspx
你已经知道需要什么了。尽量缩小你的问题的范围,所以我们不必写一本关于它的书。 – 2010-12-14 17:25:45
@Hans:谢谢,不幸的是我不知道所有的选项。发布这个问题后,我发现我也可以发射IL。至少我希望有进一步研究的技术清单。谢谢。 – 2010-12-14 17:41:43