PowerArgs.CommandLineArgument.Create C# (CSharp) Method

Create() static private method

static private Create ( ParameterInfo parameter ) : CommandLineArgument
parameter System.Reflection.ParameterInfo
return CommandLineArgument
        internal static CommandLineArgument Create(ParameterInfo parameter)
        {
            var ret = PropertyInitializer.CreateInstance<CommandLineArgument>();
            ret.Position = parameter.Position;
            ret.ArgumentType = parameter.ParameterType;
            ret.Source = parameter;
            ret.DefaultValue = parameter.HasAttr<DefaultValueAttribute>() ? parameter.Attr<DefaultValueAttribute>().Value : null;

            ret.IgnoreCase = true;

            if (parameter.Member.DeclaringType.HasAttr<ArgIgnoreCase>() && parameter.Member.DeclaringType.Attr<ArgIgnoreCase>().IgnoreCase == false)
            {
                ret.IgnoreCase = false;
            }

            if (parameter.HasAttr<ArgIgnoreCase>() && parameter.Attr<ArgIgnoreCase>().IgnoreCase == false)
            {
                ret.IgnoreCase = false;
            }

            ret.Aliases.Add(parameter.Name);

            ret.Metadata.AddRange(parameter.Attrs<IArgMetadata>().AssertAreAllInstanceOf<ICommandLineArgumentMetadata>());

            return ret;
        }

Same methods

CommandLineArgument::Create ( PropertyInfo property, List knownAliases ) : CommandLineArgument

Usage Example

コード例 #1
0
        private static List <CommandLineArgument> FindCommandLineArguments(Type t)
        {
            BindingFlags flags = BindingFlags.Instance | BindingFlags.Public;

            var knownAliases = new List <string>();

            foreach (var prop in t.GetProperties(flags))
            {
                // This makes sure that explicit aliases get put into the known aliases before any auto generated aliases
                knownAliases.AddRange(prop.Attrs <ArgShortcut>().Select(s => s.Shortcut));
            }

            var ret = from p in t.GetProperties(flags)
                      where  CommandLineArgument.IsArgument(p)
                      select CommandLineArgument.Create(p, knownAliases);

            return(ret.ToList());
        }
All Usage Examples Of PowerArgs.CommandLineArgument::Create