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); }
/* * /// <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); }