Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / FilteredAttributeCollection.cs / 1 / FilteredAttributeCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Globalization;
///
/// Contains a filtered (by device filter) view of the attributes parsed from a tag
///
internal sealed class FilteredAttributeDictionary : IDictionary {
private string _filter;
private IDictionary _data;
private ParsedAttributeCollection _owner;
internal FilteredAttributeDictionary(ParsedAttributeCollection owner, string filter) {
_filter = filter;
_owner = owner;
_data = new ListDictionary(StringComparer.OrdinalIgnoreCase);
}
///
/// The actual dictionary used for storing the data
///
internal IDictionary Data {
get {
return _data;
}
}
///
/// The filter that this collection is filtering on
///
public string Filter {
get {
return _filter;
}
}
///
/// Returns the value of a particular attribute for this filter
///
public string this[string key] {
get {
return (string)_data[key];
}
set {
_owner.ReplaceFilteredAttribute(_filter, key, value);
}
}
///
/// Adds a new attribute for this filter
///
public void Add(string key, string value) {
_owner.AddFilteredAttribute(_filter, key, value);
}
///
/// Clears all attributes for this filter
///
public void Clear() {
_owner.ClearFilter(_filter);
}
///
/// Returns true if this filtered view contains the specified attribute
///
public bool Contains(string key) {
return _data.Contains(key);
}
///
/// Removes the specified attribute for this filter
///
public void Remove(string key) {
_owner.RemoveFilteredAttribute(_filter, key);
}
#region IDictionary implementation
///
bool IDictionary.IsFixedSize {
get {
return false;
}
}
///
bool IDictionary.IsReadOnly {
get {
return false;
}
}
///
object IDictionary.this[object key] {
get {
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.FilteredAttributeDictionary_ArgumentMustBeString), "key");
}
return this[key.ToString()];
}
set {
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.FilteredAttributeDictionary_ArgumentMustBeString), "key");
}
if (!(value is string)) {
throw new ArgumentException(SR.GetString(SR.FilteredAttributeDictionary_ArgumentMustBeString), "value");
}
this[key.ToString()] = value.ToString();
}
}
///
ICollection IDictionary.Keys {
get {
return _data.Keys;
}
}
///
ICollection IDictionary.Values {
get {
return _data.Values;
}
}
///
void IDictionary.Add(object key, object value) {
if (key == null) {
throw new ArgumentNullException("key");
}
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.FilteredAttributeDictionary_ArgumentMustBeString), "key");
}
if (!(value is string)) {
throw new ArgumentException(SR.GetString(SR.FilteredAttributeDictionary_ArgumentMustBeString), "value");
}
if (value == null) {
value = String.Empty;
}
Add(key.ToString(), value.ToString());
}
///
bool IDictionary.Contains(object key) {
if (!(key is string)) {
throw new ArgumentException(SR.GetString(SR.FilteredAttributeDictionary_ArgumentMustBeString), "key");
}
return Contains(key.ToString());
}
///
void IDictionary.Clear() {
Clear();
}
///
IDictionaryEnumerator IDictionary.GetEnumerator() {
return _data.GetEnumerator();
}
///
void IDictionary.Remove(object key) {
Remove(key.ToString());
}
#endregion IDictionary implementation
#region ICollection implementation
///
int ICollection.Count {
get {
return _data.Count;
}
}
///
bool ICollection.IsSynchronized {
get {
return ((ICollection)_data).IsSynchronized;
}
}
///
object ICollection.SyncRoot {
get {
return _data.SyncRoot;
}
}
///
void ICollection.CopyTo(Array array, int index) {
_data.CopyTo(array, index);
}
///
IEnumerator IEnumerable.GetEnumerator() {
return _data.GetEnumerator();
}
#endregion ICollection implementation
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RowToFieldTransformer.cs
- ZipIORawDataFileBlock.cs
- TableAutomationPeer.cs
- ICspAsymmetricAlgorithm.cs
- HealthMonitoringSection.cs
- LineBreakRecord.cs
- ReturnEventArgs.cs
- CodeExpressionCollection.cs
- counter.cs
- mediaeventargs.cs
- X509PeerCertificateElement.cs
- UriTemplateTable.cs
- PointCollectionConverter.cs
- NavigationWindow.cs
- Bold.cs
- CustomTypeDescriptor.cs
- XmlSortKeyAccumulator.cs
- ManifestResourceInfo.cs
- DbDataRecord.cs
- DataGridSortingEventArgs.cs
- AffineTransform3D.cs
- EncoderParameter.cs
- JsonCollectionDataContract.cs
- UnitControl.cs
- NullableBoolConverter.cs
- CodeObject.cs
- SettingsContext.cs
- SafeCancelMibChangeNotify.cs
- MultiBindingExpression.cs
- DoubleUtil.cs
- GifBitmapDecoder.cs
- TracePayload.cs
- StrokeCollectionDefaultValueFactory.cs
- TraceHwndHost.cs
- ProviderConnectionPoint.cs
- ProviderSettings.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- KnownBoxes.cs
- GridItemPatternIdentifiers.cs
- Span.cs
- DateTimeStorage.cs
- CompiledQuery.cs
- AttributeQuery.cs
- KnownAssembliesSet.cs
- HttpHandlerActionCollection.cs
- ReaderWriterLock.cs
- CategoryValueConverter.cs
- CachedRequestParams.cs
- CollectionEditorDialog.cs
- MappingModelBuildProvider.cs
- XmlSerializerImportOptions.cs
- TabControlAutomationPeer.cs
- EntityWithChangeTrackerStrategy.cs
- TextServicesCompartment.cs
- ScriptControlDescriptor.cs
- SettingsPropertyNotFoundException.cs
- Parser.cs
- ReferenceConverter.cs
- UriScheme.cs
- SendMessageContent.cs
- SystemIcmpV6Statistics.cs
- XPathArrayIterator.cs
- HandleRef.cs
- SafeFileMapViewHandle.cs
- StreamGeometry.cs
- XmlIlTypeHelper.cs
- PageAsyncTask.cs
- TimeSpanValidator.cs
- SqlProcedureAttribute.cs
- PointHitTestParameters.cs
- SymLanguageVendor.cs
- ServiceOperationParameter.cs
- OwnerDrawPropertyBag.cs
- ToolStripProgressBar.cs
- MaskedTextBoxDesigner.cs
- safex509handles.cs
- IncrementalReadDecoders.cs
- ColorMap.cs
- HandleCollector.cs
- OutKeywords.cs
- StatusBarDrawItemEvent.cs
- WorkflowExecutor.cs
- SessionStateSection.cs
- SqlMultiplexer.cs
- Visual3D.cs
- ChangeNode.cs
- URLString.cs
- XPathAncestorQuery.cs
- ItemType.cs
- Matrix3D.cs
- AngleUtil.cs
- PopupEventArgs.cs
- LogicalExpressionEditor.cs
- HttpSocketManager.cs
- XmlNode.cs
- EFDataModelProvider.cs
- AddInAttribute.cs
- CancellationTokenSource.cs
- DocumentPageViewAutomationPeer.cs
- CommunicationException.cs