private static void ReadRegisterParser(XmlNode node, RewriterConfiguration config)
        {
            XmlNode typeNode = node.Attributes[Constants.AttrParser];

            if (typeNode == null)
            {
                throw new ConfigurationErrorsException(MessageProvider.FormatString(Message.AttributeRequired, Constants.AttrParser), node);
            }

            if (node.ChildNodes.Count > 0)
            {
                throw new ConfigurationErrorsException(MessageProvider.FormatString(Message.ElementNoElements, Constants.ElementRegister), node);
            }

            object parser = TypeHelper.Activate(typeNode.Value, null);
            IRewriteActionParser actionParser = parser as IRewriteActionParser;

            if (actionParser != null)
            {
                config.ActionParserFactory.AddParser(actionParser);
            }

            IRewriteConditionParser conditionParser = parser as IRewriteConditionParser;

            if (conditionParser != null)
            {
                config.ConditionParserPipeline.AddParser(conditionParser);
            }
        }
		/// <summary>
		/// Adds a parser.
		/// </summary>
		/// <param name="parser">The parser.</param>
		public void AddParser(IRewriteActionParser parser)
		{
            if (parser == null)
            {
                throw new ArgumentNullException("parser");
            }
            
            ArrayList list;
			if (_parsers.ContainsKey(parser.Name))
			{
				list = (ArrayList)_parsers[parser.Name];
			}
			else
			{
				list = new ArrayList();
				_parsers.Add(parser.Name, list);
			}
			list.Add(parser);
		}
示例#3
0
        /// <summary>
        /// Adds a parser.
        /// </summary>
        /// <param name="parser">The parser.</param>
        public void AddParser(IRewriteActionParser parser)
        {
            if (parser == null)
            {
                throw new ArgumentNullException("parser");
            }

            ArrayList list;

            if (_parsers.ContainsKey(parser.Name))
            {
                list = (ArrayList)_parsers[parser.Name];
            }
            else
            {
                list = new ArrayList();
                _parsers.Add(parser.Name, list);
            }
            list.Add(parser);
        }
示例#4
0
        /*
         * /// <summary>
         * /// Adds a parser.
         * /// </summary>
         * /// <param name="parserType">The parser type.</param>
         * public void Add(string parserType)
         * {
         *  Add((IRewriteActionParser)TypeHelper.Activate(parserType, null));
         * }
         */

        /// <summary>
        /// Adds a parser.
        /// </summary>
        /// <param name="parser">The parser.</param>
        public void Add(IRewriteActionParser parser)
        {
            if (parser == null)
            {
                throw new ArgumentNullException(nameof(parser));
            }

            IList <IRewriteActionParser> list;

            if (this._parsers.ContainsKey(parser.Name))
            {
                list = this._parsers[parser.Name];
            }
            else
            {
                list = new List <IRewriteActionParser>();
                this._parsers.Add(parser.Name, list);
            }

            list.Add(parser);
        }