Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / Diagnostics / SwitchElementsCollection.cs / 1 / SwitchElementsCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System.Configuration; using System.Collections; using System.Collections.Specialized; namespace System.Diagnostics { [ConfigurationCollection(typeof(SwitchElement))] internal class SwitchElementsCollection : ConfigurationElementCollection { new public SwitchElement this[string name] { get { return (SwitchElement) BaseGet(name); } } public override ConfigurationElementCollectionType CollectionType { get { return ConfigurationElementCollectionType.AddRemoveClearMap; } } protected override ConfigurationElement CreateNewElement() { return new SwitchElement(); } protected override Object GetElementKey(ConfigurationElement element) { return ((SwitchElement) element).Name; } } internal class SwitchElement : ConfigurationElement { private static readonly ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propName = new ConfigurationProperty("name", typeof(string), "", ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey); private static readonly ConfigurationProperty _propValue = new ConfigurationProperty("value", typeof(string), null, ConfigurationPropertyOptions.IsRequired); private Hashtable _attributes; static SwitchElement(){ _properties = new ConfigurationPropertyCollection(); _properties.Add(_propName); _properties.Add(_propValue); } public Hashtable Attributes { get { if (_attributes == null) _attributes = new Hashtable(StringComparer.OrdinalIgnoreCase); return _attributes; } } [ConfigurationProperty("name", DefaultValue = "", IsRequired = true, IsKey = true)] public string Name { get { return (string) this[_propName]; } } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty("value", IsRequired = true)] public string Value { get { return (string) this[_propValue]; } } 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(_propValue); } } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LoadedOrUnloadedOperation.cs
- HtmlImageAdapter.cs
- DescendantBaseQuery.cs
- PeerToPeerException.cs
- MetafileHeaderEmf.cs
- DrawingGroupDrawingContext.cs
- WSFederationHttpSecurityElement.cs
- RuleSetDialog.Designer.cs
- SystemKeyConverter.cs
- LocatorPart.cs
- FunctionDetailsReader.cs
- XmlAttributeOverrides.cs
- ViewSimplifier.cs
- PixelFormats.cs
- SortQuery.cs
- TrustLevelCollection.cs
- TemplateXamlTreeBuilder.cs
- SharedConnectionWorkflowTransactionService.cs
- ServicePointManager.cs
- CoTaskMemHandle.cs
- TextHidden.cs
- DataBindingCollection.cs
- LambdaCompiler.Logical.cs
- sqlnorm.cs
- MenuItemCollectionEditor.cs
- EntityProviderServices.cs
- SqlStream.cs
- UnsafeNativeMethods.cs
- ScriptServiceAttribute.cs
- CompilerResults.cs
- BamlLocalizationDictionary.cs
- XmlWrappingReader.cs
- FlowNode.cs
- SqlCacheDependency.cs
- NoClickablePointException.cs
- BamlCollectionHolder.cs
- TraceLog.cs
- MulticastDelegate.cs
- AppSecurityManager.cs
- DoubleAnimationClockResource.cs
- HandlerBase.cs
- DecoderFallbackWithFailureFlag.cs
- RIPEMD160Managed.cs
- ConfigXmlAttribute.cs
- ProjectionCamera.cs
- QueueProcessor.cs
- TrustExchangeException.cs
- SqlIdentifier.cs
- TypeElement.cs
- TemplateControlParser.cs
- SynchronizationScope.cs
- SqlResolver.cs
- ObjectDataSourceStatusEventArgs.cs
- WpfPayload.cs
- EventTrigger.cs
- DockingAttribute.cs
- ScopedMessagePartSpecification.cs
- SQLInt64Storage.cs
- AbstractDataSvcMapFileLoader.cs
- SettingsContext.cs
- SerializableAttribute.cs
- BindingParameterCollection.cs
- DoubleCollection.cs
- ViewStateModeByIdAttribute.cs
- ButtonColumn.cs
- UserControlFileEditor.cs
- SegmentInfo.cs
- PolyBezierSegment.cs
- DragDrop.cs
- StrongNameIdentityPermission.cs
- TimeSpan.cs
- HtmlButton.cs
- DataControlReference.cs
- ValidationContext.cs
- ContentDisposition.cs
- GridItemProviderWrapper.cs
- SpeechEvent.cs
- NumericUpDownAccelerationCollection.cs
- DataSourceControlBuilder.cs
- ServiceDeploymentInfo.cs
- DateTimeOffsetStorage.cs
- QilInvokeEarlyBound.cs
- TextParaLineResult.cs
- ConsoleTraceListener.cs
- ColorAnimationUsingKeyFrames.cs
- ActivityBuilderHelper.cs
- Root.cs
- DataGridTextBox.cs
- CompilationRelaxations.cs
- DocumentScope.cs
- CustomAttributeSerializer.cs
- HttpListenerPrefixCollection.cs
- CollectionEditVerbManager.cs
- MimeFormReflector.cs
- MemberMaps.cs
- StateRuntime.cs
- _IPv4Address.cs
- coordinator.cs
- HtmlEmptyTagControlBuilder.cs
- ToolstripProfessionalRenderer.cs