c#-DynamicObject-基于参数值的调用方法
作者:互联网
我希望能够存储动作字典,并能够基于字典的键来调用这些动作.如果找不到密钥,则不会调用任何操作.我想到了使用扩展了DynamicObject的对象执行调用并在构造时获取动作字典的想法,但是然后所有有关如何使用DynamicObject的示例都基于属性,而不是方法.
我希望能够执行以下操作:
`dynamicDictionary.InvokeMethod(commandName);`
解决方法:
开源框架Dynamitey将执行此操作.对于动作字典,您可以使用内置的MS ExpandoObject进行构造,也可以使用Dynamitey具有DynamicObjects.BaseDictionary的结构,该字典将像字典的代理一样工作.
如果您将动作填充为属性,则可以将其作为方法调用.如果需要通过字符串名称调用它们,则可以使用Dynamic.InvokeAction(dynamicDictionary,commandName).这使用DLR调用一种方法,该方法比对静态对象的反射要快,并且使在动态对象上的实现成为可能.
标签:dynamicobject,c 来源: https://codeday.me/bug/20191102/1994515.html