Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebParts / PersonalizationDictionary.cs / 1305376 / PersonalizationDictionary.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls.WebParts {
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Web.Util;
// This class is unsealed so it can be extended by developers who extend the personalization infrastructure
public class PersonalizationDictionary : IDictionary {
private HybridDictionary _dictionary;
public PersonalizationDictionary() {
_dictionary = new HybridDictionary(/* caseInsensitive */ true);
}
public PersonalizationDictionary(int initialSize) {
_dictionary = new HybridDictionary(initialSize, /* caseInsensitive */ true);
}
public virtual int Count {
get {
return _dictionary.Count;
}
}
public virtual bool IsFixedSize {
get {
return false;
}
}
public virtual bool IsReadOnly {
get {
return false;
}
}
public virtual bool IsSynchronized {
get {
return false;
}
}
public virtual ICollection Keys {
get {
return _dictionary.Keys;
}
}
public virtual object SyncRoot {
get {
return this;
}
}
public virtual ICollection Values {
get {
return _dictionary.Values;
}
}
public virtual PersonalizationEntry this[string key] {
get{
key = StringUtil.CheckAndTrimString(key, "key");
return (PersonalizationEntry)_dictionary[key];
}
set {
key = StringUtil.CheckAndTrimString(key, "key");
if (value == null) {
throw new ArgumentNullException("value");
}
_dictionary[key] = value;
}
}
public virtual void Add(string key, PersonalizationEntry value) {
key = StringUtil.CheckAndTrimString(key, "key");
if (value == null) {
throw new ArgumentNullException("value");
}
_dictionary.Add(key, value);
}
public virtual void Clear() {
_dictionary.Clear();
}
public virtual bool Contains(string key) {
key = StringUtil.CheckAndTrimString(key, "key");
return _dictionary.Contains(key);
}
public virtual void CopyTo(DictionaryEntry[] array, int index) {
_dictionary.CopyTo(array, index);
}
public virtual IDictionaryEnumerator GetEnumerator() {
return _dictionary.GetEnumerator();
}
public virtual void Remove(string key) {
key = StringUtil.CheckAndTrimString(key, "key");
_dictionary.Remove(key);
}
internal void RemoveSharedProperties() {
DictionaryEntry[] entries = new DictionaryEntry[Count];
CopyTo(entries, 0);
foreach (DictionaryEntry entry in entries) {
if (((PersonalizationEntry)entry.Value).Scope == PersonalizationScope.Shared) {
Remove((string)entry.Key);
}
}
}
#region Implementation of IDictionary
object IDictionary.this[object key] {
get {
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.PersonalizationDictionary_MustBeTypeString), "key");
}
return this[(string)key];
}
set {
if (value == null) {
throw new ArgumentNullException("value");
}
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.PersonalizationDictionary_MustBeTypeString), "key");
}
if (!(value is PersonalizationEntry)) {
throw new ArgumentException(SR.GetString(
SR.PersonalizationDictionary_MustBeTypePersonalizationEntry), "value");
}
this[(string)key] = (PersonalizationEntry)value;
}
}
void IDictionary.Add(object key, object value) {
if (value == null) {
throw new ArgumentNullException("value");
}
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.PersonalizationDictionary_MustBeTypeString), "key");
}
if (!(value is PersonalizationEntry)) {
throw new ArgumentException(SR.GetString(
SR.PersonalizationDictionary_MustBeTypePersonalizationEntry), "value");
}
Add((string)key, (PersonalizationEntry)value);
}
bool IDictionary.Contains(object key) {
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.PersonalizationDictionary_MustBeTypeString), "key");
}
return Contains((string)key);
}
void IDictionary.Remove(object key) {
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.PersonalizationDictionary_MustBeTypeString), "key");
}
Remove((string)key);
}
#endregion
#region Implementation of ICollection
void ICollection.CopyTo(Array array, int index) {
if (!(array is DictionaryEntry[])) {
throw new ArgumentException(
SR.GetString(SR.PersonalizationDictionary_MustBeTypeDictionaryEntryArray), "array");
}
CopyTo((DictionaryEntry[])array, index);
}
#endregion
#region Implementation of IEnumerable
IEnumerator IEnumerable.GetEnumerator() {
return GetEnumerator();
}
#endregion
}
}
// 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
- XmlWellformedWriter.cs
- SqlBinder.cs
- ListBindingHelper.cs
- ConditionalAttribute.cs
- TypeSystem.cs
- RayHitTestParameters.cs
- Literal.cs
- SoapParser.cs
- ContravarianceAdapter.cs
- FunctionMappingTranslator.cs
- Error.cs
- AutomationProperty.cs
- BaseTemplateBuildProvider.cs
- TransactionProtocolConverter.cs
- MessageTransmitTraceRecord.cs
- ScrollItemPattern.cs
- FontCacheLogic.cs
- TypeForwardedToAttribute.cs
- UnknownWrapper.cs
- EntityStoreSchemaFilterEntry.cs
- Control.cs
- RunClient.cs
- SuppressMessageAttribute.cs
- UpDownBase.cs
- TextPattern.cs
- SqlCommandSet.cs
- IntSecurity.cs
- XmlMembersMapping.cs
- GZipUtils.cs
- UTF8Encoding.cs
- SourceLocation.cs
- FontFaceLayoutInfo.cs
- EmptyStringExpandableObjectConverter.cs
- RootBrowserWindowProxy.cs
- Setter.cs
- Geometry.cs
- IntegerValidator.cs
- diagnosticsswitches.cs
- ToolStripItemEventArgs.cs
- XamlClipboardData.cs
- CriticalHandle.cs
- DataGridViewComboBoxCell.cs
- Converter.cs
- Deflater.cs
- CultureInfo.cs
- XmlAttributeAttribute.cs
- ECDiffieHellmanPublicKey.cs
- SqlExpander.cs
- ConvertersCollection.cs
- BindingWorker.cs
- NativeMethods.cs
- QuaternionIndependentAnimationStorage.cs
- StoryFragments.cs
- DataBindingExpressionBuilder.cs
- IndexedGlyphRun.cs
- TextSelectionProcessor.cs
- SapiAttributeParser.cs
- RMPublishingDialog.cs
- SamlAssertionKeyIdentifierClause.cs
- ThreadInterruptedException.cs
- BinHexEncoding.cs
- XmlSchemaAnnotated.cs
- DataControlFieldHeaderCell.cs
- ListControl.cs
- TextElementAutomationPeer.cs
- DataGridViewCellStyleBuilderDialog.cs
- HttpCacheParams.cs
- safePerfProviderHandle.cs
- SqlFormatter.cs
- GridViewHeaderRowPresenter.cs
- COM2ExtendedUITypeEditor.cs
- DefaultDiscoveryService.cs
- TreeViewHitTestInfo.cs
- AutomationPatternInfo.cs
- DependencyObjectPropertyDescriptor.cs
- EnumUnknown.cs
- UseAttributeSetsAction.cs
- UndoManager.cs
- ObjectDataSourceStatusEventArgs.cs
- SelectorAutomationPeer.cs
- DatePickerAutomationPeer.cs
- SQLRoleProvider.cs
- MSAANativeProvider.cs
- SafeCryptContextHandle.cs
- ZipIOCentralDirectoryFileHeader.cs
- AbandonedMutexException.cs
- TrustManagerMoreInformation.cs
- PageFunction.cs
- CodeParameterDeclarationExpression.cs
- TransportChannelFactory.cs
- WinCategoryAttribute.cs
- PageParserFilter.cs
- PropertiesTab.cs
- Span.cs
- sqlmetadatafactory.cs
- HttpApplication.cs
- PrivilegedConfigurationManager.cs
- SoapEnumAttribute.cs
- CancellationHandlerDesigner.cs
- TypeSystemProvider.cs