public static CommandParameterDescriptor CreateFor(PropertyInfo property)
        {
            var descriptor = new CommandParameterDescriptor
            {
                AllowsDefaultValue = true,
                Name          = property.Name.ToLower(),
                IsCollection  = CollectionConstructor.IsSupportedCollectionType(property.PropertyType),
                PositionIndex = -1
            };

            var attr = property.GetCustomAttribute <ParameterAttribute>();

            if (attr == null)
            {
                return(descriptor);
            }

            attr.SetCreateDescriptorValues(descriptor);
            return(descriptor);
        }
        public static CommandParameterDescriptor CreateFor(ParameterInfo parameter)
        {
            var descriptor = new CommandParameterDescriptor
            {
                Name = parameter.Name.ToLower(),
                AllowsDefaultValue = parameter.HasDefaultValue,
                DefaultValue       = parameter.DefaultValue,
                IsCollection       = CollectionConstructor.IsSupportedCollectionType(parameter.ParameterType),
                PositionIndex      = parameter.Position
            };

            var attr = parameter.GetCustomAttribute <ParameterAttribute>();

            if (attr == null)
            {
                return(descriptor);
            }

            attr.SetCreateDescriptorValues(descriptor);
            return(descriptor);
        }