Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebParts / PersonalizationDictionary.cs / 1 / 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;
using System.Security.Permissions;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
// 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
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WeakReferenceEnumerator.cs
- RectangleHotSpot.cs
- UnsettableComboBox.cs
- HealthMonitoringSection.cs
- BadImageFormatException.cs
- FragmentQuery.cs
- CodeAttributeArgumentCollection.cs
- ButtonFieldBase.cs
- HwndAppCommandInputProvider.cs
- TextTreeRootNode.cs
- CounterCreationDataCollection.cs
- PostBackTrigger.cs
- Error.cs
- GridViewDeletedEventArgs.cs
- FloaterParagraph.cs
- MetadataUtil.cs
- EntityCommandCompilationException.cs
- BaseInfoTable.cs
- DiscoveryClientDocuments.cs
- ReadOnlyDataSourceView.cs
- CssClassPropertyAttribute.cs
- GenericPrincipal.cs
- PerformanceCounterCategory.cs
- Focus.cs
- DateBoldEvent.cs
- SchemaNamespaceManager.cs
- OleDbWrapper.cs
- CheckBoxAutomationPeer.cs
- FormDesigner.cs
- QueryExtender.cs
- BevelBitmapEffect.cs
- CodeAttributeDeclaration.cs
- ConsoleKeyInfo.cs
- DiffuseMaterial.cs
- DesignerCategoryAttribute.cs
- ImpersonationContext.cs
- HtmlTableCell.cs
- CqlGenerator.cs
- TypeValidationEventArgs.cs
- UnsafeNativeMethods.cs
- X509SecurityTokenAuthenticator.cs
- loginstatus.cs
- _IPv6Address.cs
- TypeUnloadedException.cs
- CompiledQueryCacheKey.cs
- BrowserDefinition.cs
- DragEventArgs.cs
- WebPartMinimizeVerb.cs
- DatatypeImplementation.cs
- ChangePassword.cs
- FormatterConverter.cs
- LookupNode.cs
- AnnotationComponentChooser.cs
- PropertyGridEditorPart.cs
- UIElementHelper.cs
- WpfPayload.cs
- CachedTypeface.cs
- FormCollection.cs
- TaskExtensions.cs
- EntityAdapter.cs
- ImageCollectionEditor.cs
- SafeFileMappingHandle.cs
- RightNameExpirationInfoPair.cs
- HealthMonitoringSectionHelper.cs
- WhitespaceRuleLookup.cs
- WindowsSecurityTokenAuthenticator.cs
- NativeMethods.cs
- IndexedString.cs
- AssemblyContextControlItem.cs
- GridViewRowCollection.cs
- Padding.cs
- Rfc2898DeriveBytes.cs
- CodeSpit.cs
- SettingsSavedEventArgs.cs
- ProcessModuleCollection.cs
- BulletedList.cs
- TdsParameterSetter.cs
- ToolStripSeparator.cs
- ComplexType.cs
- DbExpressionVisitor_TResultType.cs
- WebServiceEndpoint.cs
- shaperfactoryquerycachekey.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ValueQuery.cs
- ExternalCalls.cs
- Color.cs
- DivideByZeroException.cs
- CursorEditor.cs
- TrackingMemoryStream.cs
- Matrix3DValueSerializer.cs
- WizardStepBase.cs
- Typeface.cs
- WebControlsSection.cs
- SoapRpcServiceAttribute.cs
- Visual3DCollection.cs
- EntityDataSourceView.cs
- CompositeDataBoundControl.cs
- DeferredReference.cs
- PropertyPathConverter.cs
- OleDbStruct.cs