示例#1
0
        private void NewProperty( XmlTextReader xml, Property prop )
        {
            string name = xml.GetAttribute( "Name" );
            string switchPrefixOverride = xml.GetAttribute( "SwitchPrefix" );
            string separator = xml.GetAttribute( "Separator" );
            string includeInCmdLine = xml.GetAttribute( "IncludeInCommandLine" );
            string subType = xml.GetAttribute( "Subtype" );

            // Just need at least a valid name
            if ( name != null )
            {
                // Choose correct switch prefix
                string prefix = m_switchPrefix;
                if ( switchPrefixOverride != null )
                {
                    prefix = switchPrefixOverride;
                }
                if ( prefix == null )
                {
                    prefix = string.Empty;
                }

                // Separator for string, int and stringlist properties
                if ( separator == null )
                {
                    separator = string.Empty;
                }

                if ( includeInCmdLine != null )
                {
                    if ( includeInCmdLine.ToLower() == "false" )
                    {
                        // Ignore the ones that aren't meant to be in the cmdline
                        return;
                    }
                }

                // Will quote fix for files or folder params
                bool shouldQuoteFix = false;
                if (subType != null)
                {
                    if ((subType.ToLower() == "file") || (subType.ToLower() == "folder"))
                    {
                        shouldQuoteFix = true;
                    }
                }

                prop.Setup(xml, prefix, separator, shouldQuoteFix );

                m_properties.Add( name, prop );
            }
        }