Genetics.Mappings.MemberMapping.MapMember C# (CSharp) Méthode

MapMember() private méthode

private MapMember ( ) : void
Résultat void
        private void MapMember()
        {
            // get the setter method and field type
            if (Member.MemberType == MemberTypes.Field)
            {
                var field = ((FieldInfo)Member);
                if (field.IsInitOnly)
                {
                    Geneticist.HandleError(
                        "Cannot splice '{0}' on '{1}' because it is readonly.",
                        Member.Name,
                        Type.FullName);
                }
                else
                {
                    SetterMethod = field.SetValue;
                    GetterMethod = field.GetValue;
                    MemberType = field.FieldType;
                }
            }
            else if (Member.MemberType == MemberTypes.Property)
            {
                var property = ((PropertyInfo)Member);
                if (property.SetMethod == null)
                {
                    Geneticist.HandleError(
                        "Cannot splice '{0}' on '{1}' because it is readonly.",
                        Member.Name,
                        Type.FullName);
                }
                else
                {
                    SetterMethod = (t, v) => property.SetMethod.Invoke(t, new[] { v });
                    GetterMethod = (t) => property.GetMethod.Invoke(t, new object[0]);
                    MemberType = property.PropertyType;
                }
            }
            else
            {
                Geneticist.HandleError(
                    "The splice of '{0}' on '{1}' is not yet supported: {2}.",
                    Member.Name,
                    Type.FullName,
                    Member.MemberType);
            }
        }