我已经看到很多关于如何调用这样那样的方法的问题。我还没有找到关于如何通过反射或 csharp 中的任何其他方式调用方法的不同选项的列表。
有人可以详细解释在csharp中动态调用方法的不同方式吗?从反射到发射 IL 以及介于两者之间的任何其他方式。我想知道在资源方面从最昂贵到最便宜的所有不同方式。
最佳答案
为了帮助您入门,以下是我能想到的在 .NET 中调用方法的方法:
- 打电话
- 调用virt
- 代表
- 动态方法
- MethodInfo.Invoke
- Type.InvokeMember
- 类型描述符
- 反射.发射
- 表达树
我记得有一篇文章比较了其中大部分的速度,但是我现在好像找不到了。
关于c# - 在 C# 中动态调用方法的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1708451/