C#动态索引器

And*_*ewG 6 c#

有人知道是否可以通过索引器使用动态lang功能在CLR对象上调用方法?例如, myClrObj["SuperMethod"] () 我可以在javascript中轻松完成.

预先感谢.

flq*_*flq 1

可能有更好的方法,但我知道如何做到这一点的一种方法是:

  • 创建一个继承自的类DynamicObject
  • 重写合适的方法以通过索引器捕获访问
  • 构造并缓存与您通过提供的索引器参数找到的方法相对应的委托
  • 提供一个扩展方法,适当地使您的对象看起来动态,并实例化正确的 DynamicObject 专业化。

    dynamic obj = myObj.AsIndexedObj(); obj["Do"]();