public XmlRewriter(ContentParser processor, HttpCloneOptimizations optimizations, IDictionary <string, string> namedValues) { _context = ContentRecord.DefaultInstance; _processor = processor; _optimizations = optimizations; _namedValues = namedValues; _elements = new Dictionary <XmlLightElement, object>(); _replaces = new Dictionary <object, HttpCloneOptimizationReplace>(); foreach (var rep in optimizations.AllItems()) { foreach (var i in rep.ReplaceItem) { _replaces.Add(i, rep); } } _bytag = optimizations.AllItems() .SelectMany(item => item.ReplaceItem.OfType <HttpCloneTag>()) .ToLookup(t => t.TagName); _xpaths = optimizations.AllItems() .SelectMany(item => item.ReplaceItem.OfType <HttpCloneXPath>()) .ToArray(); if (_bytag.Count > 0 || _xpaths.Length > 0) { processor.ContextChanged += ContextChanged; processor.RewriteElement += RewriteElement; processor.RewriteXmlDocument += RewriteXmlDocument; } }
public RegexRewriter(ContentParser processor, HttpCloneOptimizations optimizations, IDictionary <string, string> namedValues) { _processor = processor; _optimizations = optimizations; _namedValues = namedValues; _replaces = new Dictionary <object, HttpCloneOptimizationReplace>(); foreach (var rep in optimizations.AllItems()) { foreach (var i in rep.ReplaceItem) { _replaces.Add(i, rep); } } _matches = optimizations.AllItems() .SelectMany(item => item.ReplaceItem.OfType <HttpCloneMatch>()) .ToArray(); _expressions = _matches.Select(m => new Regex(m.Expression)).ToArray(); if (_matches.Length > 0) { _processor.RewriteContent += RewriteContent; _processor.ContextChanged += ContextChanged; } }
public XmlRewriter(ContentParser processor, HttpCloneOptimizations optimizations, IDictionary<string, string> namedValues) { _context = ContentRecord.DefaultInstance; _processor = processor; _optimizations = optimizations; _namedValues = namedValues; _elements = new Dictionary<XmlLightElement, object>(); _replaces = new Dictionary<object, HttpCloneOptimizationReplace>(); foreach (var rep in optimizations.AllItems()) foreach (var i in rep.ReplaceItem) _replaces.Add(i, rep); _bytag = optimizations.AllItems() .SelectMany(item => item.ReplaceItem.OfType<HttpCloneTag>()) .ToLookup(t => t.TagName); _xpaths = optimizations.AllItems() .SelectMany(item => item.ReplaceItem.OfType<HttpCloneXPath>()) .ToArray(); if (_bytag.Count > 0 || _xpaths.Length > 0) { processor.ContextChanged += ContextChanged; processor.RewriteElement += RewriteElement; processor.RewriteXmlDocument += RewriteXmlDocument; } }
public RegexRewriter(ContentParser processor, HttpCloneOptimizations optimizations, IDictionary<string, string> namedValues) { _processor = processor; _optimizations = optimizations; _namedValues = namedValues; _replaces = new Dictionary<object, HttpCloneOptimizationReplace>(); foreach (var rep in optimizations.AllItems()) foreach (var i in rep.ReplaceItem) _replaces.Add(i, rep); _matches = optimizations.AllItems() .SelectMany(item => item.ReplaceItem.OfType<HttpCloneMatch>()) .ToArray(); _expressions = _matches.Select(m => new Regex(m.Expression)).ToArray(); if (_matches.Length > 0) { _processor.RewriteContent += RewriteContent; _processor.ContextChanged += ContextChanged; } }