private void Add(ValueMember member) { int opaqueToken = 0; try { _model.TakeLock(ref opaqueToken); ThrowIfFrozen(); if (!IsFieldFree(member.FieldNumber) && !Helpers.IsEnum(Type)) { throw new ArgumentException(string.Format("FieldNumber {0} for {1} was already taken", member.FieldNumber, member), nameof(member)); } _fields.Add(member); member.FinalizingSettings += (s, a) => FinalizingMemberSettings?.Invoke(this, a); } finally { _model.ReleaseLock(opaqueToken); } }
void AddTupleField(ValueMember vm) { vm.FinalizingSettings += (s, a) => FinalizingMemberSettings?.Invoke(this, a); _tupleFields.Add(vm); }