Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / Diagnostics / SourceElementsCollection.cs / 1 / SourceElementsCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System.Configuration; using System.Collections; using System.Collections.Specialized; using System.Xml; namespace System.Diagnostics { [ConfigurationCollection(typeof(SourceElement), AddItemName = "source", CollectionType = ConfigurationElementCollectionType.BasicMap)] internal class SourceElementsCollection : ConfigurationElementCollection { new public SourceElement this[string name] { get { return (SourceElement) BaseGet(name); } } protected override string ElementName { get { return "source"; } } public override ConfigurationElementCollectionType CollectionType { get { return ConfigurationElementCollectionType.BasicMap; } } protected override ConfigurationElement CreateNewElement() { SourceElement se = new SourceElement(); se.Listeners.InitializeDefaultInternal(); return se; } protected override Object GetElementKey(ConfigurationElement element) { return ((SourceElement) element).Name; } } internal class SourceElement : ConfigurationElement { private static readonly ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propName = new ConfigurationProperty("name", typeof(string), "", ConfigurationPropertyOptions.IsRequired); private static readonly ConfigurationProperty _propSwitchName = new ConfigurationProperty("switchName", typeof(string), null, ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propSwitchValue = new ConfigurationProperty("switchValue", typeof(string), null, ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propSwitchType = new ConfigurationProperty("switchType", typeof(string), null, ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propListeners = new ConfigurationProperty("listeners", typeof(ListenerElementsCollection), new ListenerElementsCollection(), ConfigurationPropertyOptions.None); private Hashtable _attributes; static SourceElement() { _properties = new ConfigurationPropertyCollection(); _properties.Add(_propName); _properties.Add(_propSwitchName); _properties.Add(_propSwitchValue); _properties.Add(_propSwitchType); _properties.Add(_propListeners); } public Hashtable Attributes { get { if (_attributes == null) _attributes = new Hashtable(StringComparer.OrdinalIgnoreCase); return _attributes; } } [ConfigurationProperty("listeners")] public ListenerElementsCollection Listeners { get { return (ListenerElementsCollection) this[_propListeners]; } } [ConfigurationProperty("name", IsRequired=true, DefaultValue="")] public string Name { get { return (string) this[_propName]; } } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty("switchName")] public string SwitchName { get { return (string) this[_propSwitchName]; } } [ConfigurationProperty("switchValue")] public string SwitchValue { get { return (string) this[_propSwitchValue]; } } [ConfigurationProperty("switchType")] public string SwitchType { get { return (string) this[_propSwitchType]; } } protected override void DeserializeElement(XmlReader reader, bool serializeCollectionKey) { base.DeserializeElement(reader, serializeCollectionKey); if (!String.IsNullOrEmpty(SwitchName) && !String.IsNullOrEmpty(SwitchValue)) throw new ConfigurationErrorsException(SR.GetString(SR.Only_specify_one, Name)); } protected override bool OnDeserializeUnrecognizedAttribute(String name, String value) { ConfigurationProperty _propDynamic = new ConfigurationProperty(name, typeof(string), value); _properties.Add(_propDynamic); base[_propDynamic] = value; // Add them to the property bag Attributes.Add(name, value); return true; } internal void ResetProperties() { // blow away any UnrecognizedAttributes that we have deserialized earlier if (_attributes != null) { _attributes.Clear(); _properties.Clear(); _properties.Add(_propName); _properties.Add(_propSwitchName); _properties.Add(_propSwitchValue); _properties.Add(_propSwitchType); _properties.Add(_propListeners); } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Debug.cs
- ProcessProtocolHandler.cs
- ProvideValueServiceProvider.cs
- LogPolicy.cs
- SmiContextFactory.cs
- SuspendDesigner.cs
- TextParentUndoUnit.cs
- SelectionChangedEventArgs.cs
- ErrorStyle.cs
- ConfigXmlDocument.cs
- BitmapFrame.cs
- GeneralTransformGroup.cs
- BrowserCapabilitiesFactory.cs
- SmiEventSink_Default.cs
- IsolatedStorage.cs
- MultiBindingExpression.cs
- StringPropertyBuilder.cs
- SecurityException.cs
- PinProtectionHelper.cs
- ConfigXmlAttribute.cs
- ApplicationFileCodeDomTreeGenerator.cs
- QueryInterceptorAttribute.cs
- TimeManager.cs
- ScriptReferenceEventArgs.cs
- StrictAndMessageFilter.cs
- MobileErrorInfo.cs
- DBConnection.cs
- DataGridColumnsPage.cs
- RuntimeConfig.cs
- QueryAccessibilityHelpEvent.cs
- AutomationPatternInfo.cs
- TokenBasedSetEnumerator.cs
- Assert.cs
- CaseStatement.cs
- CompoundFileStreamReference.cs
- CompositeFontParser.cs
- uribuilder.cs
- SessionSwitchEventArgs.cs
- XmlDocument.cs
- MessageQueueAccessControlEntry.cs
- GregorianCalendar.cs
- SEHException.cs
- ObjectStateManager.cs
- ApplicationBuildProvider.cs
- MultiByteCodec.cs
- MarshalDirectiveException.cs
- StopStoryboard.cs
- LinqDataSourceContextEventArgs.cs
- ProtocolElementCollection.cs
- EntityReference.cs
- ArithmeticException.cs
- PixelFormatConverter.cs
- PolyQuadraticBezierSegment.cs
- GrammarBuilderRuleRef.cs
- Vector3D.cs
- IPPacketInformation.cs
- _SafeNetHandles.cs
- BaseProcessProtocolHandler.cs
- BuildProviderCollection.cs
- MenuAutomationPeer.cs
- DesignerActionGlyph.cs
- EFTableProvider.cs
- BadImageFormatException.cs
- FamilyMap.cs
- HtmlControl.cs
- DesignerTransaction.cs
- ProfileServiceManager.cs
- QilFunction.cs
- FrameworkElement.cs
- DataContractSerializer.cs
- StyleHelper.cs
- SmtpCommands.cs
- UserControlParser.cs
- OdbcStatementHandle.cs
- Enum.cs
- CLSCompliantAttribute.cs
- Int32Rect.cs
- WSSecurityXXX2005.cs
- ConcurrentBag.cs
- FormViewPagerRow.cs
- PingOptions.cs
- ButtonField.cs
- EmptyCollection.cs
- MergeFilterQuery.cs
- OracleNumber.cs
- SystemResourceKey.cs
- ListItemsPage.cs
- SqlProvider.cs
- UserValidatedEventArgs.cs
- FullTextState.cs
- StyleBamlTreeBuilder.cs
- MemoryMappedFileSecurity.cs
- GenericWebPart.cs
- MD5.cs
- Nodes.cs
- ContractListAdapter.cs
- CodeParameterDeclarationExpressionCollection.cs
- ExpressionLexer.cs
- DbProviderConfigurationHandler.cs
- SpeechSynthesizer.cs