<p>To implement "method-missing"-semantics and such in C# 4.0, you have to implement IDynamicObject:</p>

<pre><code>public interface IDynamicObject
{
  MetaObject GetMetaObject(Expression parameter);
}
</code></pre>

<p>As far as I can figure out IDynamicObject is actually part of the DLR, so it is not new. But I have not been able to find much documentation on it.</p>

<p>There are some very simple example implementations out there (f.x. <a href="http://blogs.msdn.com/cburrows/archive/2008/10/28/c-dynamic-part-ii.aspx" rel="noreferrer">here</a> and <a href="http://code.msdn.microsoft.com/csharpfuture/Release/ProjectReleases.aspx?ReleaseId=1686" rel="noreferrer">here</a>), but could anyone point me to more complete implementations or some real documentation?</p>

<p>Especially, how exactly are you supposed to handle the "parameter"-parameter?</p>

Here is what I have figured out so far:
The Dynamic Language Runtime is currently maintained as part of the
IronPython project
. So that is the best place to go for information.
The easiest way to implement a class supporting IDynamicObject seems to be to derive from
Microsoft.Scripting.Actions.Dynamic
and override the relevant methods, for instance the Call-method to implement function call semantics. It looks like Microsoft.Scripting.Actions.Dynamic hasn't been included in the CTP, but the one from IronPython 2.0 looks like it will work.
I am still unclear on the exact meaning of the "parameter"-parameter, but it seems to provide context for the binding of the dynamic-object.