我们目前正在使用 .NET 3.5,我们的部分应用程序使用动态调用(使用MethodBase.Invoke)
我想知道是否可以将命名参数(在.NET 4中)与动态调用混合,以执行类似于:
// Dictionary that holds parameter name --> object mapping
var parameters = new Dictionary<string, object>();
// Add parameters ....
// Invoke where each parameter will match the one from the method signature.
methodInfo.Invoke(obj, parameters);
是否有任何 API 允许此选项开箱即用?如果没有,是否有可能开发一些解决方案来执行此操作?
编辑:
重新考虑这个问题,这听起来类似于编译器实际上可能需要根据参数列表匹配方法调用。也许有一些编译器 API(或新的 Roslyn 项目)可以轻松做到这一点?(没有自己编码,可能容易出错)。