To implement \"method-missing\"-semantics and such in C# 4.0, you have to implement IDynamicObject:
public interface IDynamicObject { MetaObject GetMetaObj
I just blogged about how to do this here:
http://mikehadlow.blogspot.com/2008/10/dynamic-dispatch-in-c-40.html