Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / ProfileGroupSettingsCollection.cs / 1305376 / ProfileGroupSettingsCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System;
using System.Xml;
using System.Configuration;
using System.Collections.Specialized;
using System.Collections;
using System.IO;
using System.Text;
using System.Web.Util;
using System.Security.Permissions;
[ConfigurationCollection(typeof(ProfileGroupSettings), AddItemName = "group")]
public sealed class ProfileGroupSettingsCollection : ConfigurationElementCollection {
private static ConfigurationPropertyCollection _properties;
private bool bModified = false;
static ProfileGroupSettingsCollection() {
_properties = new ConfigurationPropertyCollection();
}
public ProfileGroupSettingsCollection() {
AddElementName = "group";
ClearElementName = String.Empty; // This collection does not support Clear tags
EmitClear = false;
}
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
// public properties
public String[] AllKeys {
get {
return StringUtil.ObjectArrayToStringArray(BaseGetAllKeys());
}
}
public new ProfileGroupSettings this[string name] {
get {
return (ProfileGroupSettings)BaseGet(name);
}
}
public ProfileGroupSettings this[int index] {
get {
return (ProfileGroupSettings)BaseGet(index);
}
set {
if (BaseGet(index) != null) {
BaseRemoveAt(index);
}
BaseAdd(index, value);
}
}
internal void AddOrReplace(ProfileGroupSettings groupSettings) {
BaseAdd(groupSettings, false);
}
// Protected Overrides
protected override ConfigurationElement CreateNewElement() {
return new ProfileGroupSettings();
}
protected override Object GetElementKey(ConfigurationElement element) {
return ((ProfileGroupSettings)element).Name;
}
// Internal access to ConfigurationElement methods
internal bool InternalIsModified() {
return IsModified();
}
internal void InternalResetModified() {
ResetModified();
}
internal void InternalReset(ConfigurationElement parentElement) {
Reset(parentElement);
}
internal void InternalUnMerge(ConfigurationElement sourceElement, ConfigurationElement parentElement,
ConfigurationSaveMode saveMode) {
// This requires a special unmerge because it should not act like an element in a collection
// which is the default behavior
Unmerge(sourceElement, parentElement, saveMode); // Base merge to get locks merged
BaseClear(); // don't use the merged data however
ProfileGroupSettingsCollection source = sourceElement as ProfileGroupSettingsCollection;
ProfileGroupSettingsCollection parent = parentElement as ProfileGroupSettingsCollection;
// foreach group in the source we should unmerge the individual settings.
foreach (ProfileGroupSettings settings in source) {
ProfileGroupSettings settingsFromParent = parent.Get(settings.Name);
ProfileGroupSettings deltaSettings = new ProfileGroupSettings();
deltaSettings.InternalUnmerge(settings, settingsFromParent, saveMode);
BaseAdd(deltaSettings);
}
}
internal bool InternalSerialize(XmlWriter writer, bool serializeCollectionKey) {
if (EmitClear == true) {
throw new ConfigurationErrorsException(SR.GetString(SR.Clear_not_valid));
}
return SerializeElement(writer, serializeCollectionKey);
}
// public methods
public void Add(ProfileGroupSettings group) {
BaseAdd(group);
}
public ProfileGroupSettings Get(int index) {
return (ProfileGroupSettings)BaseGet(index);
}
public ProfileGroupSettings Get(string name) {
return (ProfileGroupSettings)BaseGet(name);
}
public String GetKey(int index) {
return (String) BaseGetKey(index);
}
public void Set(ProfileGroupSettings group) {
BaseAdd(group, false);
}
public int IndexOf(ProfileGroupSettings group) {
return BaseIndexOf(group);
}
public void Remove(string name) {
ConfigurationElement elem = BaseGet(name);
if (elem != null) {
ElementInformation elemInfo = elem.ElementInformation;
if (elemInfo.IsPresent) {
BaseRemove(name);
}
else {
throw new ConfigurationErrorsException(SR.GetString(SR.Config_base_cannot_remove_inherited_items));
}
}
}
public void RemoveAt(int index) {
ConfigurationElement elem = BaseGet(index);
if (elem != null) {
ElementInformation elemInfo = elem.ElementInformation;
if (elemInfo.IsPresent) {
BaseRemoveAt(index);
}
else {
throw new ConfigurationErrorsException(SR.GetString(SR.Config_base_cannot_remove_inherited_items));
}
}
}
public void Clear() {
int index = Count-1;
bModified = true;
for (int i = index; i >= 0; i--) {
ConfigurationElement elem = BaseGet(i);
if (elem != null) {
ElementInformation elemInfo = elem.ElementInformation;
if (elemInfo.IsPresent) {
BaseRemoveAt(i);
}
}
}
}
protected override void ResetModified() {
bModified = false;
base.ResetModified();
}
protected override bool IsModified() {
if (bModified == true) {
return true;
}
return base.IsModified();
}
}
}
// 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
- ImportDesigner.xaml.cs
- ProfileSettings.cs
- RegexRunner.cs
- HtmlFormAdapter.cs
- DelimitedListTraceListener.cs
- CodePageEncoding.cs
- XmlSerializerAssemblyAttribute.cs
- StringPropertyBuilder.cs
- ListItemViewControl.cs
- DataGridViewImageColumn.cs
- DbMetaDataCollectionNames.cs
- RecognitionResult.cs
- TypeConverterMarkupExtension.cs
- XmlSequenceWriter.cs
- SiteMapDataSourceView.cs
- XmlTextReader.cs
- PerformanceCounterManager.cs
- DelegatedStream.cs
- LinqDataSourceSelectEventArgs.cs
- ApplicationId.cs
- EntityViewGenerator.cs
- Rect3DConverter.cs
- RequestCachePolicy.cs
- StringArrayConverter.cs
- PreDigestedSignedInfo.cs
- StoryFragments.cs
- RIPEMD160.cs
- TextBlock.cs
- ItemList.cs
- CalendarBlackoutDatesCollection.cs
- SelectedGridItemChangedEvent.cs
- XmlSchemaComplexContentExtension.cs
- EdmTypeAttribute.cs
- Transform3DGroup.cs
- ProcessHost.cs
- COSERVERINFO.cs
- ConfigXmlComment.cs
- OleDbException.cs
- HtmlToClrEventProxy.cs
- DocumentsTrace.cs
- ResetableIterator.cs
- LayoutEvent.cs
- DbConnectionPoolCounters.cs
- ValidationHelper.cs
- MediaSystem.cs
- ThreadAbortException.cs
- DataMemberListEditor.cs
- CompoundFileStorageReference.cs
- ObjectHelper.cs
- XPathSelectionIterator.cs
- AdapterUtil.cs
- XmlArrayItemAttribute.cs
- SymmetricAlgorithm.cs
- PriorityChain.cs
- WSSecurityPolicy12.cs
- DiscreteKeyFrames.cs
- ISAPIApplicationHost.cs
- SafeRegistryKey.cs
- TcpServerChannel.cs
- WSSecureConversationDec2005.cs
- ModifiableIteratorCollection.cs
- BackgroundFormatInfo.cs
- DateBoldEvent.cs
- CreateUserWizardStep.cs
- SelectedDatesCollection.cs
- DataGridPageChangedEventArgs.cs
- IndependentAnimationStorage.cs
- ProvideValueServiceProvider.cs
- StaticContext.cs
- RenderCapability.cs
- RtfFormatStack.cs
- TraceListeners.cs
- HwndKeyboardInputProvider.cs
- FormatSelectingMessageInspector.cs
- ImmutableObjectAttribute.cs
- SelectionProcessor.cs
- MemoryMappedViewStream.cs
- ReadOnlyDictionary.cs
- ToolZone.cs
- TableLayoutStyle.cs
- ValidateNames.cs
- RuleConditionDialog.Designer.cs
- EmbeddedMailObjectsCollection.cs
- DateTimeOffsetConverter.cs
- WmpBitmapEncoder.cs
- SettingsPropertyNotFoundException.cs
- DataGridHyperlinkColumn.cs
- WebMessageEncodingElement.cs
- DesignTimeTemplateParser.cs
- EventRecord.cs
- LazyInitializer.cs
- EditorBrowsableAttribute.cs
- GenerateScriptTypeAttribute.cs
- HandledEventArgs.cs
- KeyEvent.cs
- SmtpMail.cs
- DetailsViewDeletedEventArgs.cs
- SqlDataSourceView.cs
- GeometryCombineModeValidation.cs
- counter.cs