Ejemplo n.º 1
0
        public LoadArg(string arg)
        {
            //string[] parts = arg.SplitClean(':');

            // ALWAYS PARSE ASSEMBLY/MODULE
            var    sep     = arg.IndexOf(':');
            string modType = sep >= 0 ? arg.Substring(0, sep) : arg;

            string[] modTypeParts = modType.SplitClean(',');
            switch (modTypeParts.Length)
            {
            case 2:
                // Type and AssemblyName given
                ModuleTypeName = modTypeParts[0];
                AssemblyName   = modTypeParts[1];
                break;

            case 1:
                // only TypeName given
                ModuleTypeName = modTypeParts[0];
                break;

            default:
                throw new ArgumentException("Assembly/Type names in wrong format: " + modType);
            }

            // IF PROVIDED, PARSE PROPERTIES
            arg = sep >= 0 ? arg.Substring(sep + 1) : string.Empty;
            if (!String.IsNullOrWhiteSpace(arg))
            {
                string   modProps  = arg;
                string[] propParts = modProps.SplitClean(',');

                foreach (var part in propParts)
                {
                    var assignmentArg = new AssignmentArg(part);
                    assignmentArg.Key = assignmentArg.Key.ToPropertyFullName(FullyQualifiedTypeName);
                    _properties.Add(assignmentArg);
                }
            }
        }
Ejemplo n.º 2
0
        public LoadArg(string arg)
        {
            //string[] parts = arg.SplitClean(':');

            // ALWAYS PARSE ASSEMBLY/MODULE
            var sep = arg.IndexOf(':');
            string modType = sep >= 0 ? arg.Substring(0, sep) : arg;
            string[] modTypeParts = modType.SplitClean(',');
            switch (modTypeParts.Length)
            {
                case 2:
                    // Type and AssemblyName given
                    ModuleTypeName = modTypeParts[0];
                    AssemblyName = modTypeParts[1];
                    break;
                case 1:
                    // only TypeName given
                    ModuleTypeName = modTypeParts[0];
                    break;
                default:
                    throw new ArgumentException("Assembly/Type names in wrong format: " + modType);
            }

            // IF PROVIDED, PARSE PROPERTIES
            arg = sep >= 0 ? arg.Substring(sep + 1) : string.Empty;
            if (!String.IsNullOrWhiteSpace(arg))
            {
                string modProps = arg;
                string[] propParts = modProps.SplitClean(',');

                foreach (var part in propParts)
                {
                    var assignmentArg = new AssignmentArg(part);
                    assignmentArg.Key = assignmentArg.Key.ToPropertyFullName(FullyQualifiedTypeName);
                    _properties.Add(assignmentArg);
                }
            }
        }
 public void Add(AssignmentArg a)
 {
     var e = new CmdLinePropertyElement(a);
     BaseAdd(e);
 }
 public void Add(AssignmentArg a)
 {
     _properties.Add(a);
 }
 public CmdLinePropertyElement(AssignmentArg a)
 {
     base["name"] = a.Key;
     base["value"] = a.Value;
 }