public PropertyDefinition Build(PropertyInfo property)
        {
            PropertyDefinition propDef = new DefaultPropertyDefinition(
                GetTypeDefinition(property),
                GetName(property),
                GetGetter(property),
                GetSetter(property),
                GetDeclaringTypeName(property),
                GetAccessibility(property),
                MemberType.Property);

            IEnumerable<PropertyDefinitionAttribute> propertyDefinitionAttributes = property.GetCustomAttributes(false).OfType<PropertyDefinitionAttribute>();
            foreach (PropertyDefinitionAttribute attribute in propertyDefinitionAttributes)
            {
                attribute.InnerDefinition = propDef;
                propDef = attribute;
            }

            return propDef;
        }
        public PropertyDefinition Build(FieldInfo field)
        {
            PropertyDefinition propDef = new DefaultPropertyDefinition(
                GetTypeDefinition(field),
                GetName(field),
                GetGetter(field),
                GetSetter(field),
                GetDeclaringTypeName(field),
                GetAccessibility(field),
                MemberType.Field);

            IEnumerable<PropertyDefinitionAttribute> propertyDefinitionAttributes = field.GetSourceMember().GetCustomAttributes(false).OfType<PropertyDefinitionAttribute>();

            foreach (PropertyDefinitionAttribute attribute in propertyDefinitionAttributes)
            {
                attribute.InnerDefinition = propDef;
                propDef = attribute;
            }

            return propDef;
        }