Now I have a class that extends DynamicObject and overrides TryGetMember.
public class FieldCollection : DynamicObject, ICollection<Field>, 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);
This works fine, but I am forced to extend DynamicObject, which means that I cannot extend anything else. Is it possible to do this without the DynamicObject extension?
source
share