C#4.0:动态,继承自DynamicObject

Sni*_*ave 4 .net c# dynamic

假设我有这个:

dynamic foo = new Foobar();
Run Code Online (Sandbox Code Playgroud)

我有这个:

public class Foobar : DynamicObject
{

}
Run Code Online (Sandbox Code Playgroud)

问题是,是否有可能覆盖成员以DynamicObject使此代码:

string name = new Foobar().Name
Run Code Online (Sandbox Code Playgroud)

不是Exception在运行时抛出?我要回defaultname的,如果Name不是成员.

可能?我需要覆盖什么?

Ray*_*nry 7

覆盖TryGetMember(和TrySetMember).从DynamicObject类派生的类可以重写此方法,以指定操作的动态行为,例如获取属性的值.

http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.trygetmember.aspx