private void AddField(FieldProviderAttribute field) { var fieldName = field.Name.ToLower(); if (fieldNames.ContainsKey(fieldName)) { throw new InvalidOperationException($"Field by name {field.Name} already exists."); } var fieldIndex = fields.Count; fieldNames.Add(fieldName, fieldIndex); fields.Add(field); }
private void InitializeField(FieldProviderAttribute field, MemberInfo fieldMember) { IModelBinding modelBinding; switch (fieldMember.MemberType) { case MemberTypes.Field: modelBinding = new FieldModelBinding((FieldInfo)fieldMember); break; case MemberTypes.Property: modelBinding = new PropertyModelBinding((PropertyInfo)fieldMember); break; default: throw new InvalidOperationException(); } field.Initialize(this, modelBinding); AddField(field); }