有人知道是否可以使用动态lang功能通过索引器在CLR对象上调用方法吗?例如,myClrObj["SuperMethod"] (),我可以很容易地用javascript做。

预先感谢。

最佳答案

也许有更好的方法,但是我知道怎么做的一种方法是:

  • 创建一个从DynamicObject继承的类
  • 覆盖适当的方法以通过索引器
  • 捕获访问
  • 构造并缓存与通过提供的索引器参数
  • 找到的方法相对应的委托(delegate)
  • 提供一个扩展方法,该方法可以适本地使您的对象动态化,并实例化正确的DynamicObject特化特性。
    dynamic obj = myObj.AsIndexedObj(); obj["Do"]();
  • 关于C#动态索引器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3659105/

    10-13 06:01