C#4.0中"动态"变量的实际用途是什么?

Max*_*ler 14 .net c# c#-4.0

如果在调用方法时它们可能不存在,它们的用途是什么?

这是否意味着您可以在动态对象上动态创建方法?

这有什么实际用处?

Jon*_*eet 15

您将无法真正动态创建该方法 - 但您可以获得IDynamicMetaObject(通常通过扩展DynamicObject)实现,以响应该方法的存在.

用途:

  • 使用弱API(例如办公室)对COM对象进行编程
  • 调用Ruby/Python等动态语言
  • 潜在地制作"可探索的"对象 - 想象一个类似XPath的查询,但通过方法/属性调用,例如 document.RootElement.Person[5].Name["Attribute"]
  • 毫无疑问,我们尚未想到更多:)

  • 我非常喜欢这种XML理念.这会涉及某种自定义属性包吗? (2认同)