如果在调用方法时可能不存在,那么它们有什么用处?
这是否意味着您可以在动态对象上动态创建方法?
这有什么实际用途?
您实际上无法动态创建方法,但是您可以通过实现IDynamicMetaObject
(通常通过扩展DynamicObject
)来响应仿佛方法存在。
用途:
document.RootElement.Person[5].Name["Attribute"]
把它看成是一种简化的反射形式。而不是这个样子:
object value = GetSomeObject();
Method method = value.GetType().GetMethod("DoSomething");
method.Invoke(value, new object[] { 1, 2, 3 });
IDynamicObject value = GetSomeObject();
value.DoSomething(1, 2, 3);
我看到有几个动态ORM框架正在被编写。或者你可以自己写一个。
我同意Jon Skeet的观点,你可能会看到一些有趣的探索对象的方式。 也许使用像jQuery这样的选择器。
调用COM和调用动态语言。
我期待着看到是否有一种类似Ruby的missing_method的方法。