title: Implementing dynamic capabilities on an object without inheriting DynamicObject?
body: <p>Right now I have a class that extends DynamicObject and overrides TryGetMember.</p>
  
  <pre><code>public class FieldCollection : DynamicObject, ICollection&lt;Field&gt;, ISerializable
  {
      ...
  
      public override bool TryGetMember(GetMemberBinder binder, out object result)
      {
          var field = _inner.TryGetField(binder.Name);
  
          result = field == null ? null : field.Value;
          return true;
      }
  
      ...
  }
  
  dynamic fields = new FieldCollection();
  Console.WriteLine(fields.Foo);
  </code></pre>
  
  <p>This works fine, but I'm forced to extend DynamicObject which means I can't extend anything else. Is it possible to do do this without extending DynamicObject?</p>