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
- LabelLiteral.cs
- Condition.cs
- DrawingContextDrawingContextWalker.cs
- XmlCDATASection.cs
- WindowsTab.cs
- HttpMethodConstraint.cs
- DynamicPropertyReader.cs
- EncoderParameters.cs
- HttpBindingExtension.cs
- GraphicsPathIterator.cs
- DetailsViewCommandEventArgs.cs
- Resources.Designer.cs
- StreamWriter.cs
- IndexedString.cs
- Hex.cs
- LayoutTableCell.cs
- XPathExpr.cs
- ObjRef.cs
- MachineKey.cs
- _SslStream.cs
- ParagraphResult.cs
- SmiMetaDataProperty.cs
- ApplicationDirectory.cs
- XmlSerializerFactory.cs
- IncrementalCompileAnalyzer.cs
- M3DUtil.cs
- DataGridCellAutomationPeer.cs
- ListBindableAttribute.cs
- BaseAsyncResult.cs
- ToolStripContentPanelRenderEventArgs.cs
- PipelineModuleStepContainer.cs
- BitmapEffectInputData.cs
- LinkLabelLinkClickedEvent.cs
- CommonObjectSecurity.cs
- Pointer.cs
- HtmlInputText.cs
- ShaperBuffers.cs
- FrameworkEventSource.cs
- DesignerTransaction.cs
- OdbcConnectionFactory.cs
- ViewCellRelation.cs
- oledbconnectionstring.cs
- BooleanAnimationBase.cs
- WorkflowMarkupSerializationManager.cs
- NonClientArea.cs
- SecureStringHasher.cs
- PaintValueEventArgs.cs
- ErrorHandlerFaultInfo.cs
- IdentitySection.cs
- DbModificationCommandTree.cs
- PropertyDescriptor.cs
- ReadOnlyCollectionBase.cs
- DataGridViewColumnStateChangedEventArgs.cs
- ScrollableControlDesigner.cs
- RepeatInfo.cs
- GroupBox.cs
- HtmlUtf8RawTextWriter.cs
- PackageProperties.cs
- ActiveXContainer.cs
- XmlNamespaceManager.cs
- DataSourceConverter.cs
- CompatibleComparer.cs
- ScopelessEnumAttribute.cs
- EntityDataSourceColumn.cs
- OperationPickerDialog.designer.cs
- TreeWalkHelper.cs
- XmlHierarchicalEnumerable.cs
- PageAsyncTask.cs
- CheckBox.cs
- MemberProjectedSlot.cs
- EntitySqlQueryBuilder.cs
- FloatMinMaxAggregationOperator.cs
- FormsAuthenticationUser.cs
- CountdownEvent.cs
- ToolStripPanelSelectionGlyph.cs
- OdbcConnectionPoolProviderInfo.cs
- TransactionalPackage.cs
- mediapermission.cs
- UndirectedGraph.cs
- StyleSelector.cs
- ClrPerspective.cs
- DependencyObject.cs
- Propagator.cs
- GridViewAutomationPeer.cs
- TextTrailingCharacterEllipsis.cs
- SelectionPattern.cs
- EventHandlers.cs
- Trace.cs
- WaitHandle.cs
- ExpressionEditorSheet.cs
- BufferCache.cs
- SystemResourceKey.cs
- WebServiceTypeData.cs
- IOException.cs
- ButtonRenderer.cs
- DisposableCollectionWrapper.cs
- DependencyProperty.cs
- ComPlusDiagnosticTraceSchemas.cs
- AssemblyAttributesGoHere.cs
- DataGridRowEventArgs.cs