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
- ObjectDisposedException.cs
- _SingleItemRequestCache.cs
- Ops.cs
- StreamHelper.cs
- Mouse.cs
- ReturnType.cs
- SqlConnectionString.cs
- ListControl.cs
- CAGDesigner.cs
- PolyLineSegmentFigureLogic.cs
- XPathArrayIterator.cs
- Panel.cs
- TimersDescriptionAttribute.cs
- XmlDocumentFragment.cs
- httpapplicationstate.cs
- Selection.cs
- ContentType.cs
- CustomAttributeBuilder.cs
- FileDialogPermission.cs
- RectangleGeometry.cs
- Style.cs
- MappingMetadataHelper.cs
- DrawingDrawingContext.cs
- MetadataItem.cs
- SafeThreadHandle.cs
- ReadOnlyDataSource.cs
- BooleanAnimationUsingKeyFrames.cs
- OneOfScalarConst.cs
- AsyncPostBackTrigger.cs
- WebException.cs
- Durable.cs
- BatchServiceHost.cs
- CompilationAssemblyInstallComponent.cs
- COAUTHINFO.cs
- SQLStringStorage.cs
- DynamicMethod.cs
- XmlSchemaSimpleTypeList.cs
- DrawListViewSubItemEventArgs.cs
- NetStream.cs
- SoapAttributeOverrides.cs
- PeerInvitationResponse.cs
- RuntimeArgument.cs
- Int16AnimationUsingKeyFrames.cs
- DetailsViewCommandEventArgs.cs
- GeometryHitTestResult.cs
- InvalidProgramException.cs
- Base64Encoder.cs
- ComponentRenameEvent.cs
- RectangleConverter.cs
- PreviewPrintController.cs
- UserControlParser.cs
- IDispatchConstantAttribute.cs
- ComPlusServiceHost.cs
- ToolStripHighContrastRenderer.cs
- SourceLineInfo.cs
- SoapEnumAttribute.cs
- NominalTypeEliminator.cs
- StickyNoteContentControl.cs
- ReadOnlyDataSource.cs
- DtdParser.cs
- ToolStripItemRenderEventArgs.cs
- DbParameterHelper.cs
- CodeArgumentReferenceExpression.cs
- Stack.cs
- ObjectToken.cs
- ButtonChrome.cs
- SmtpNtlmAuthenticationModule.cs
- BoundsDrawingContextWalker.cs
- ContentDisposition.cs
- GPStream.cs
- TimelineGroup.cs
- SqlUserDefinedTypeAttribute.cs
- TextRangeEditTables.cs
- BatchParser.cs
- LinkDesigner.cs
- EditableRegion.cs
- DBConcurrencyException.cs
- QueryOutputWriter.cs
- PropertyGridCommands.cs
- ComplexType.cs
- UnregisterInfo.cs
- SmiRecordBuffer.cs
- KeyNotFoundException.cs
- QilIterator.cs
- TablePattern.cs
- _TLSstream.cs
- DetailsViewRowCollection.cs
- Point3DIndependentAnimationStorage.cs
- DrawingCollection.cs
- FocusWithinProperty.cs
- RoutedPropertyChangedEventArgs.cs
- GenericIdentity.cs
- ToolStripItemTextRenderEventArgs.cs
- UrlPropertyAttribute.cs
- StorageComplexPropertyMapping.cs
- MimePart.cs
- AggregationMinMaxHelpers.cs
- Condition.cs
- DataGridCommandEventArgs.cs
- Expressions.cs