Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Configuration / System / Configuration / ConfigurationSectionGroup.cs / 1 / ConfigurationSectionGroup.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Configuration {
using System;
using System.Configuration.Internal;
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;}
}
}
}
// 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;
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;}
}
}
}
// 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
- GeneralTransform3D.cs
- ExternalFile.cs
- WindowsFormsHostPropertyMap.cs
- UIPermission.cs
- Hex.cs
- WmlObjectListAdapter.cs
- GlobalProxySelection.cs
- CalendarDay.cs
- UnaryNode.cs
- ReachPageContentCollectionSerializerAsync.cs
- CodePrimitiveExpression.cs
- SystemFonts.cs
- SimpleHandlerFactory.cs
- DataGridLinkButton.cs
- XamlPoint3DCollectionSerializer.cs
- ComplusEndpointConfigContainer.cs
- XmlRawWriter.cs
- InternalCache.cs
- LocalIdKeyIdentifierClause.cs
- PageSettings.cs
- ReaderWriterLockWrapper.cs
- TypeBuilderInstantiation.cs
- ViewSimplifier.cs
- _BaseOverlappedAsyncResult.cs
- InputDevice.cs
- WebServiceMethodData.cs
- BufferAllocator.cs
- BinaryObjectReader.cs
- PtsCache.cs
- ThreadSafeList.cs
- DataBindingExpressionBuilder.cs
- GraphicsPathIterator.cs
- WebServicesSection.cs
- SafeFreeMibTable.cs
- MultitargetUtil.cs
- XslAstAnalyzer.cs
- AutoGeneratedField.cs
- Point3DAnimationUsingKeyFrames.cs
- Pen.cs
- RepeaterItem.cs
- TrackingStringDictionary.cs
- EventProxy.cs
- PersianCalendar.cs
- PerformanceCounterManager.cs
- MatrixCamera.cs
- ProviderUtil.cs
- IgnoreDeviceFilterElement.cs
- baseaxisquery.cs
- HtmlInputHidden.cs
- ProfileInfo.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- TextSelectionHighlightLayer.cs
- InkPresenter.cs
- XmlEnumAttribute.cs
- TTSEngineProxy.cs
- SerialPinChanges.cs
- EdmComplexPropertyAttribute.cs
- DecimalStorage.cs
- TypeInformation.cs
- CharacterMetrics.cs
- SmtpException.cs
- ContractMapping.cs
- InitializationEventAttribute.cs
- PassportAuthentication.cs
- XmlUtil.cs
- LicenseManager.cs
- coordinatorfactory.cs
- TypeConstant.cs
- Types.cs
- OraclePermissionAttribute.cs
- RegexGroup.cs
- Style.cs
- CommonObjectSecurity.cs
- EventDescriptorCollection.cs
- OrderedDictionaryStateHelper.cs
- AndMessageFilter.cs
- Parser.cs
- SqlDataSource.cs
- ExtendedProtectionPolicy.cs
- _PooledStream.cs
- HtmlInputImage.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ArgumentException.cs
- KeyGestureConverter.cs
- InternalTransaction.cs
- NavigateEvent.cs
- CssTextWriter.cs
- MatrixConverter.cs
- LineProperties.cs
- SplitContainer.cs
- AtomMaterializerLog.cs
- StringAnimationUsingKeyFrames.cs
- WindowsGraphicsWrapper.cs
- CardSpaceSelector.cs
- CatalogZoneDesigner.cs
- _Rfc2616CacheValidators.cs
- JavascriptCallbackBehaviorAttribute.cs
- PkcsUtils.cs
- RayMeshGeometry3DHitTestResult.cs
- CroppedBitmap.cs