Прямо сейчас у меня есть класс, который расширяет DynamicObject и переопределяет 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);
Это работает нормально, но я вынужден расширить DynamicObject, что означает, что я не могу расширять что-либо еще. Можно ли сделать это без расширения DynamicObject?