Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / System / Configuration / ConfigurationSectionGroup.cs / 1305376 / ConfigurationSectionGroup.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System; using System.Configuration.Internal; using System.Runtime.Versioning; public class ConfigurationSectionGroup { string _configKey = String.Empty; string _group = String.Empty; string _name = String.Empty; ConfigurationSectionCollection _configSections; ConfigurationSectionGroupCollection _configSectionGroups; MgmtConfigurationRecord _configRecord; string _typeName; bool _declared; bool _declarationRequired; bool _isRoot; public ConfigurationSectionGroup() { } internal void AttachToConfigurationRecord(MgmtConfigurationRecord configRecord, FactoryRecord factoryRecord) { _configRecord = configRecord; _configKey = factoryRecord.ConfigKey; _group = factoryRecord.Group; _name = factoryRecord.Name; _typeName = factoryRecord.FactoryTypeName; if (_typeName != null) { FactoryRecord parentFactoryRecord = null; if (!configRecord.Parent.IsRootConfig) { parentFactoryRecord = configRecord.Parent.FindFactoryRecord(factoryRecord.ConfigKey, true); } _declarationRequired = (parentFactoryRecord == null || parentFactoryRecord.FactoryTypeName == null); _declared = configRecord.GetFactoryRecord(factoryRecord.ConfigKey, true) != null; } } internal void RootAttachToConfigurationRecord(MgmtConfigurationRecord configRecord) { _configRecord = configRecord; _isRoot = true; } internal void DetachFromConfigurationRecord() { if (_configSections != null) { _configSections.DetachFromConfigurationRecord(); } if (_configSectionGroups != null) { _configSectionGroups.DetachFromConfigurationRecord(); } _configRecord = null; } internal bool Attached { get {return _configRecord != null;} } private FactoryRecord FindParentFactoryRecord(bool permitErrors) { FactoryRecord factoryRecord = null; if (_configRecord != null && !_configRecord.Parent.IsRootConfig) { factoryRecord = _configRecord.Parent.FindFactoryRecord(_configKey, permitErrors); } return factoryRecord; } private void VerifyIsAttachedToConfigRecord() { if (_configRecord == null) { throw new InvalidOperationException(SR.GetString(SR.Config_cannot_edit_configurationsectiongroup_when_not_attached)); } } // IsDeclared // // Is the Declaration in this config file? // public bool IsDeclared { get { return _declared; } } // IsDeclarationRequired // // Is the Declaration Required. It is required if it is not set // int a parent, or the parent entry does not have the type // public bool IsDeclarationRequired { get { return _declarationRequired; } } // ForceDeclaration // // Force the declaration to be written. // public void ForceDeclaration() { ForceDeclaration(true); } // ForceDeclaration // // Force the declaration to be written. If this is false, it // may be ignored depending on if it is Required // public void ForceDeclaration(bool force) { if (_isRoot) { throw new InvalidOperationException(SR.GetString(SR.Config_root_section_group_cannot_be_edited)); } if (_configRecord != null && _configRecord.IsLocationConfig) { throw new InvalidOperationException(SR.GetString(SR.Config_cannot_edit_configurationsectiongroup_in_location_config)); } if (!force && _declarationRequired ) { // Since it is required, we can not remove it } else { _declared = force; } } public string SectionGroupName { get {return _configKey;} } public string Name { get {return _name;} } public string Type { get {return _typeName;} set { if (_isRoot) { throw new InvalidOperationException(SR.GetString(SR.Config_root_section_group_cannot_be_edited)); } // Since type is optional for a section group, allow it to be removed. // Note that a typename of "" is not permitted in the config file. string typeName = value; if (String.IsNullOrEmpty(typeName)) { typeName = null; } if (_configRecord != null) { if (_configRecord.IsLocationConfig) { throw new InvalidOperationException(SR.GetString(SR.Config_cannot_edit_configurationsectiongroup_in_location_config)); } // allow type to be different from current type, // so long as it doesn't conflict with a type already defined if (typeName != null) { FactoryRecord factoryRecord = FindParentFactoryRecord(false); if (factoryRecord != null && !factoryRecord.IsEquivalentType(_configRecord.Host, typeName)) { throw new ConfigurationErrorsException(SR.GetString(SR.Config_tag_name_already_defined, _configKey)); } } } _typeName = typeName; } } public ConfigurationSectionCollection Sections { get { if (_configSections == null) { VerifyIsAttachedToConfigRecord(); _configSections = new ConfigurationSectionCollection(_configRecord, this); } return _configSections; } } public ConfigurationSectionGroupCollection SectionGroups { get { if (_configSectionGroups == null) { VerifyIsAttachedToConfigRecord(); _configSectionGroups = new ConfigurationSectionGroupCollection(_configRecord, this); } return _configSectionGroups; } } internal bool IsRoot { get {return _isRoot;} } protected internal virtual bool ShouldSerializeSectionGroupInTargetVersion(FrameworkName targetFramework) { return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System; using System.Configuration.Internal; using System.Runtime.Versioning; public class ConfigurationSectionGroup { string _configKey = String.Empty; string _group = String.Empty; string _name = String.Empty; ConfigurationSectionCollection _configSections; ConfigurationSectionGroupCollection _configSectionGroups; MgmtConfigurationRecord _configRecord; string _typeName; bool _declared; bool _declarationRequired; bool _isRoot; public ConfigurationSectionGroup() { } internal void AttachToConfigurationRecord(MgmtConfigurationRecord configRecord, FactoryRecord factoryRecord) { _configRecord = configRecord; _configKey = factoryRecord.ConfigKey; _group = factoryRecord.Group; _name = factoryRecord.Name; _typeName = factoryRecord.FactoryTypeName; if (_typeName != null) { FactoryRecord parentFactoryRecord = null; if (!configRecord.Parent.IsRootConfig) { parentFactoryRecord = configRecord.Parent.FindFactoryRecord(factoryRecord.ConfigKey, true); } _declarationRequired = (parentFactoryRecord == null || parentFactoryRecord.FactoryTypeName == null); _declared = configRecord.GetFactoryRecord(factoryRecord.ConfigKey, true) != null; } } internal void RootAttachToConfigurationRecord(MgmtConfigurationRecord configRecord) { _configRecord = configRecord; _isRoot = true; } internal void DetachFromConfigurationRecord() { if (_configSections != null) { _configSections.DetachFromConfigurationRecord(); } if (_configSectionGroups != null) { _configSectionGroups.DetachFromConfigurationRecord(); } _configRecord = null; } internal bool Attached { get {return _configRecord != null;} } private FactoryRecord FindParentFactoryRecord(bool permitErrors) { FactoryRecord factoryRecord = null; if (_configRecord != null && !_configRecord.Parent.IsRootConfig) { factoryRecord = _configRecord.Parent.FindFactoryRecord(_configKey, permitErrors); } return factoryRecord; } private void VerifyIsAttachedToConfigRecord() { if (_configRecord == null) { throw new InvalidOperationException(SR.GetString(SR.Config_cannot_edit_configurationsectiongroup_when_not_attached)); } } // IsDeclared // // Is the Declaration in this config file? // public bool IsDeclared { get { return _declared; } } // IsDeclarationRequired // // Is the Declaration Required. It is required if it is not set // int a parent, or the parent entry does not have the type // public bool IsDeclarationRequired { get { return _declarationRequired; } } // ForceDeclaration // // Force the declaration to be written. // public void ForceDeclaration() { ForceDeclaration(true); } // ForceDeclaration // // Force the declaration to be written. If this is false, it // may be ignored depending on if it is Required // public void ForceDeclaration(bool force) { if (_isRoot) { throw new InvalidOperationException(SR.GetString(SR.Config_root_section_group_cannot_be_edited)); } if (_configRecord != null && _configRecord.IsLocationConfig) { throw new InvalidOperationException(SR.GetString(SR.Config_cannot_edit_configurationsectiongroup_in_location_config)); } if (!force && _declarationRequired ) { // Since it is required, we can not remove it } else { _declared = force; } } public string SectionGroupName { get {return _configKey;} } public string Name { get {return _name;} } public string Type { get {return _typeName;} set { if (_isRoot) { throw new InvalidOperationException(SR.GetString(SR.Config_root_section_group_cannot_be_edited)); } // Since type is optional for a section group, allow it to be removed. // Note that a typename of "" is not permitted in the config file. string typeName = value; if (String.IsNullOrEmpty(typeName)) { typeName = null; } if (_configRecord != null) { if (_configRecord.IsLocationConfig) { throw new InvalidOperationException(SR.GetString(SR.Config_cannot_edit_configurationsectiongroup_in_location_config)); } // allow type to be different from current type, // so long as it doesn't conflict with a type already defined if (typeName != null) { FactoryRecord factoryRecord = FindParentFactoryRecord(false); if (factoryRecord != null && !factoryRecord.IsEquivalentType(_configRecord.Host, typeName)) { throw new ConfigurationErrorsException(SR.GetString(SR.Config_tag_name_already_defined, _configKey)); } } } _typeName = typeName; } } public ConfigurationSectionCollection Sections { get { if (_configSections == null) { VerifyIsAttachedToConfigRecord(); _configSections = new ConfigurationSectionCollection(_configRecord, this); } return _configSections; } } public ConfigurationSectionGroupCollection SectionGroups { get { if (_configSectionGroups == null) { VerifyIsAttachedToConfigRecord(); _configSectionGroups = new ConfigurationSectionGroupCollection(_configRecord, this); } return _configSectionGroups; } } internal bool IsRoot { get {return _isRoot;} } protected internal virtual bool ShouldSerializeSectionGroupInTargetVersion(FrameworkName targetFramework) { return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- COAUTHIDENTITY.cs
- EditingCoordinator.cs
- TargetInvocationException.cs
- Control.cs
- Decoder.cs
- RemoveStoryboard.cs
- UrlAuthFailedErrorFormatter.cs
- InvalidWMPVersionException.cs
- BitmapSourceSafeMILHandle.cs
- LinkedResource.cs
- WebPartPersonalization.cs
- XmlSchemas.cs
- ParseHttpDate.cs
- ComboBoxAutomationPeer.cs
- ModuleConfigurationInfo.cs
- StateBag.cs
- CommandCollectionEditor.cs
- SafeUserTokenHandle.cs
- DataService.cs
- FileIOPermission.cs
- EntityViewGenerator.cs
- TextServicesCompartmentContext.cs
- AnnotationMap.cs
- ImmutableCollection.cs
- AlternateViewCollection.cs
- CodePageUtils.cs
- PolygonHotSpot.cs
- QilList.cs
- DataContext.cs
- WebPartManagerInternals.cs
- ErrorTableItemStyle.cs
- SpanIndex.cs
- TreeViewBindingsEditorForm.cs
- Win32SafeHandles.cs
- DataRelation.cs
- RoutedEventArgs.cs
- GetImportFileNameRequest.cs
- EntityParameter.cs
- InputGestureCollection.cs
- UniqueIdentifierService.cs
- IPAddressCollection.cs
- PreProcessor.cs
- AutoGeneratedField.cs
- SchemaCollectionCompiler.cs
- validation.cs
- UInt32Converter.cs
- DataBinder.cs
- EDesignUtil.cs
- SyntaxCheck.cs
- UnsafeNativeMethods.cs
- XmlSchemaCompilationSettings.cs
- TdsParserHelperClasses.cs
- UserControlCodeDomTreeGenerator.cs
- DynamicUpdateCommand.cs
- Pair.cs
- SqlWebEventProvider.cs
- DesignerCategoryAttribute.cs
- WebSysDefaultValueAttribute.cs
- XsdDuration.cs
- SoapWriter.cs
- TextBounds.cs
- LoadWorkflowByInstanceKeyCommand.cs
- RadialGradientBrush.cs
- XmlSignificantWhitespace.cs
- ErrorProvider.cs
- MappingMetadataHelper.cs
- DataGridItemEventArgs.cs
- ManifestResourceInfo.cs
- ConstraintStruct.cs
- SafeProcessHandle.cs
- PassportAuthentication.cs
- ConnectorSelectionGlyph.cs
- Int64AnimationUsingKeyFrames.cs
- Italic.cs
- PenContext.cs
- CategoryEditor.cs
- ListControlDesigner.cs
- itemelement.cs
- SoapHeaders.cs
- XmlSchemaAny.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- LinkedResource.cs
- CompleteWizardStep.cs
- Light.cs
- CommonEndpointBehaviorElement.cs
- TextTreeExtractElementUndoUnit.cs
- ColumnCollection.cs
- BitmapVisualManager.cs
- MouseActionValueSerializer.cs
- CodeMemberField.cs
- TileBrush.cs
- EdgeModeValidation.cs
- MetafileHeaderEmf.cs
- DataMemberAttribute.cs
- HtmlInputRadioButton.cs
- SqlTriggerAttribute.cs
- CookieHandler.cs
- DataPagerField.cs
- InputBinder.cs
- SamlAdvice.cs