internal TraceSourceInfo(string name, SourceLevels levels, TraceImplSettings settings) { this.name = name; this.levels = levels; this.listeners = new TraceListenerCollection(false); this.listeners.Add(new DefaultTraceListener(), settings); }
public virtual object Create (object parent, object configContext, XElement section) { IDictionary d; if (parent == null) d = new Hashtable (CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default); else d = (IDictionary)((ICloneable)parent).Clone (); if (d.Contains (TraceImplSettings.Key)) configValues = (TraceImplSettings)d[TraceImplSettings.Key]; else d.Add (TraceImplSettings.Key, configValues = new TraceImplSettings ()); // process <sharedListeners> first foreach (XElement child in section.Elements ()) { switch (child.NodeType) { case XmlNodeType.Element: if (child.Name != "sharedListeners") continue; AddTraceListeners (d, child, GetSharedListeners (d)); break; } } foreach (XElement child in section.Elements ()) { XmlNodeType type = child.NodeType; switch (type) { /* ignore */ case XmlNodeType.Whitespace: case XmlNodeType.Comment: continue; case XmlNodeType.Element: if (child.Name == "sharedListeners") continue; ElementHandler eh = (ElementHandler)elementHandlers[child.Name]; if (eh != null) eh (d, child); else ThrowUnrecognizedElement (child); break; default: ThrowUnrecognizedElement (child); break; } } return d; }
public virtual object Create(object parent, object configContext, XElement section) { IDictionary d; if (parent == null) { d = new Hashtable(CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default); } else { d = (IDictionary)((ICloneable)parent).Clone(); } if (d.Contains(TraceImplSettings.Key)) { configValues = (TraceImplSettings)d[TraceImplSettings.Key]; } else { d.Add(TraceImplSettings.Key, configValues = new TraceImplSettings()); } // process <sharedListeners> first foreach (XElement child in section.Elements()) { switch (child.NodeType) { case XmlNodeType.Element: if (child.Name != "sharedListeners") { continue; } AddTraceListeners(d, child, GetSharedListeners(d)); break; } } foreach (XElement child in section.Elements()) { XmlNodeType type = child.NodeType; switch (type) { /* ignore */ case XmlNodeType.Whitespace: case XmlNodeType.Comment: continue; case XmlNodeType.Element: if (child.Name == "sharedListeners") { continue; } ElementHandler eh = (ElementHandler)elementHandlers[child.Name]; if (eh != null) { eh(d, child); } else { ThrowUnrecognizedElement(child); } break; default: ThrowUnrecognizedElement(child); break; } } return(d); }