什麼是使用DynamicMethod.TryInvokeMember()優於使用字典作爲參數嗎?
DynamicObject.TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
經過短短調用與此簽名非動態方法在C#4.0(除了語法)的優點:
public object MethodParser(string methodName, Dictionary<string, object> arguments)
其中MethodName是「方法的名稱「參數是參數名稱和參數值的字典(MethodParser只是一個任意名稱)
換句話說,調用
foo.NonExistentMethod(arg1:"a1", arg2:3.14m)
在
foo.MethodParser("NonExistentMethod", new Dictionary<string, object>(){{"arg1", "a1"}, {"arg2": 3.14m}})