public object this[string fieldName] { get { var field = FindField(fieldName); if (ReferenceEquals(null, field)) return null; return field.AsObject(this); } set { FindFieldEnsure(fieldName).AsObject(this, value); } }