public StandardRuleParser( IFactory factory, ICustomTypeRegistrar customTypeRegistrar) { _factory = factory; _customTypeRegistrar = customTypeRegistrar; }
public Script( IFactory factory, Stream stream, Encoding encoding, bool incoming) { _factory = factory; _incoming = incoming; _customTypeRegistrar = new CustomTypeRegistrar(_factory); XDocument document; try { using (var reader = new StreamReader(stream, encoding)) document = XDocument.Load(reader); } catch (Exception ex) { throw new Exception("Failed to load url rewrite script as XDocument", ex); } var xmlRoot = document.Root; if (xmlRoot == null) { throw new Exception("No root element in url rewrite script"); } if (xmlRoot.Name != "rewrite") { throw new Exception("The rewriter rules must be an XML document with a <rewrite> root element"); } var context = new ParserContext(); foreach (var element in xmlRoot.Elements()) { if (element.Name.LocalName.ToLower() == "rewritemaps") { ParseRewriteMaps(element, context); } else if (element.Name.LocalName.ToLower() == "rules") { _rules = ParseRulesElement(element, context, "Root"); } } }