C# 在C中动态调用方法的选项#

C# 在C中动态调用方法的选项#,c#,reflection,methods,intermediate-language,invocation,C#,Reflection,Methods,Intermediate Language,Invocation,我已经看到了很多关于如何调用这样那样的方法的问题。我还并没有找到一个列表,列出了如何通过反射或csharp中的任何其他方式调用方法的不同选项 有人能详细解释在csharp中动态调用方法的不同方式吗?从反射到发射IL以及其间的任何其他方式。我想知道在资源方面从最昂贵到最便宜的所有不同方法。为了让您开始,以下是我可以想到的在.NET中调用方法的方法: 召唤 卡尔维特 委派 动态法 MethodInfo.Invoke Type.InvokeMember 类型描述符 反射,发射 表达式树 我记得有篇

我已经看到了很多关于如何调用这样那样的方法的问题。我还并没有找到一个列表,列出了如何通过反射或csharp中的任何其他方式调用方法的不同选项


有人能详细解释在csharp中动态调用方法的不同方式吗?从反射到发射IL以及其间的任何其他方式。我想知道在资源方面从最昂贵到最便宜的所有不同方法。

为了让您开始,以下是我可以想到的在.NET中调用方法的方法:

  • 召唤
  • 卡尔维特
  • 委派
  • 动态法
  • MethodInfo.Invoke
  • Type.InvokeMember
  • 类型描述符
  • 反射,发射
  • 表达式树
我记得有篇文章比较了它们的速度,但我现在似乎找不到


谷歌快速搜索出以下链接:

你能提供最流行的代码片段吗?这些是按性能成本排列的吗?当然,C#4中的“动态”功能使用了上述所有功能:-)