コード例 #1
0
        public static MetadataPropertyType ToProperty(this ParameterInfo pi)
        {
            var propertyAttrs = pi.GetCustomAttributes(false);
            var property = new MetadataPropertyType
            {
                Name = pi.Name,
                Attributes = propertyAttrs.ToAttributes(),
                Type = pi.ParameterType.Name,
            };

            var descAttr = propertyAttrs.OfType<DescriptionAttribute>().FirstOrDefault();
            if (descAttr != null)
            {
                property.Description = descAttr.Description;
            }

            return property;
        }
コード例 #2
0
 public static MetadataPropertyType ToProperty(this PropertyInfo pi, object instance = null)
 {
     var property = new MetadataPropertyType
     {
         Name = pi.Name,
         Attributes = pi.GetCustomAttributes(false).ToAttributes(),
         Type = pi.PropertyType.Name,
         DataMember = pi.GetDataMember().ToDataMember(),
         GenericArgs = pi.PropertyType.IsGenericType
             ? pi.PropertyType.GetGenericArguments().Select(x => x.Name).ToArray()
             : null,
     };
     if (instance != null)
     {
         var value = pi.GetValue(instance, null);
         if (value != pi.PropertyType.GetDefaultValue())
         {
             property.Value = value.ToJson();
         }
     }
     return property;
 }