Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Collections / EmptyReadOnlyDictionaryInternal.cs / 1 / EmptyReadOnlyDictionaryInternal.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: ListDictionaryInternal
**
**
** Purpose: List for exceptions.
**
**
===========================================================*/
namespace System.Collections {
/// This is a simple implementation of IDictionary that is empty and readonly.
[Serializable]
internal sealed class EmptyReadOnlyDictionaryInternal: IDictionary {
// Note that this class must be agile with respect to AppDomains. See its usage in
// System.Exception to understand why this is the case.
public EmptyReadOnlyDictionaryInternal() {
}
// IEnumerable members
IEnumerator IEnumerable.GetEnumerator() {
return new NodeEnumerator();
}
// ICollection members
public void CopyTo(Array array, int index) {
if (array==null)
throw new ArgumentNullException("array");
if (array.Rank != 1)
throw new ArgumentException(Environment.GetResourceString("Arg_RankMultiDimNotSupported"));
if (index < 0)
throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
if ( array.Length - index < this.Count )
throw new ArgumentException( Environment.GetResourceString("ArgumentOutOfRange_Index"), "index");
// the actual copy is a NOP
}
public int Count {
get {
return 0;
}
}
public Object SyncRoot {
get {
return this;
}
}
public bool IsSynchronized {
get {
return false;
}
}
// IDictionary members
public Object this[Object key] {
get {
if (key == null) {
throw new ArgumentNullException("key", Environment.GetResourceString("ArgumentNull_Key"));
}
return null;
}
set {
if (key == null) {
throw new ArgumentNullException("key", Environment.GetResourceString("ArgumentNull_Key"));
}
if (!key.GetType().IsSerializable)
throw new ArgumentException(Environment.GetResourceString("Argument_NotSerializable"), "key");
if( (value != null) && (!value.GetType().IsSerializable ) )
throw new ArgumentException(Environment.GetResourceString("Argument_NotSerializable"), "value");
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_ReadOnly"));
}
}
public ICollection Keys {
get {
return new Object[0];
}
}
public ICollection Values {
get {
return new Object[0];
}
}
public bool Contains(Object key) {
return false;
}
public void Add(Object key, Object value) {
if (key == null) {
throw new ArgumentNullException("key", Environment.GetResourceString("ArgumentNull_Key"));
}
if (!key.GetType().IsSerializable)
throw new ArgumentException(Environment.GetResourceString("Argument_NotSerializable"), "key" );
if( (value != null) && (!value.GetType().IsSerializable) )
throw new ArgumentException(Environment.GetResourceString("Argument_NotSerializable"), "value");
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_ReadOnly"));
}
public void Clear() {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_ReadOnly"));
}
public bool IsReadOnly {
get {
return true;
}
}
public bool IsFixedSize {
get {
return true;
}
}
public IDictionaryEnumerator GetEnumerator() {
return new NodeEnumerator();
}
public void Remove(Object key) {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_ReadOnly"));
}
private sealed class NodeEnumerator : IDictionaryEnumerator {
public NodeEnumerator() {
}
// IEnumerator members
public bool MoveNext() {
return false;
}
public Object Current {
get {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_EnumOpCantHappen"));
}
}
public void Reset() {
}
// IDictionaryEnumerator members
public Object Key {
get {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_EnumOpCantHappen"));
}
}
public Object Value {
get {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_EnumOpCantHappen"));
}
}
public DictionaryEntry Entry {
get {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_EnumOpCantHappen"));
}
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ContainerCodeDomSerializer.cs
- PipelineModuleStepContainer.cs
- BaseEntityWrapper.cs
- AncestorChangedEventArgs.cs
- MasterPageBuildProvider.cs
- MarkupCompilePass1.cs
- Stroke2.cs
- DataGridViewCellEventArgs.cs
- FontUnit.cs
- SoapAttributeAttribute.cs
- RegistryKey.cs
- TextEditorContextMenu.cs
- PlainXmlWriter.cs
- CanonicalFontFamilyReference.cs
- EntityCommand.cs
- JavaScriptString.cs
- Regex.cs
- FigureParagraph.cs
- Assembly.cs
- DefaultBindingPropertyAttribute.cs
- SimpleWebHandlerParser.cs
- PixelFormatConverter.cs
- TreeNode.cs
- HtmlButton.cs
- SqlBulkCopy.cs
- DbProviderFactories.cs
- SqlDataSourceView.cs
- CorrelationToken.cs
- TemplateInstanceAttribute.cs
- AutoSizeComboBox.cs
- ZipIOLocalFileBlock.cs
- SafeEventLogWriteHandle.cs
- Brush.cs
- XmlAnyAttributeAttribute.cs
- externdll.cs
- SqlFunctionAttribute.cs
- FixedHyperLink.cs
- baseshape.cs
- SiteMapNodeItem.cs
- XPathCompileException.cs
- Int16AnimationBase.cs
- HttpListenerException.cs
- Normalization.cs
- XmlSchemaComplexContentExtension.cs
- FixedElement.cs
- HtmlHistory.cs
- DropShadowBitmapEffect.cs
- StrokeDescriptor.cs
- ExitEventArgs.cs
- RectValueSerializer.cs
- WeakHashtable.cs
- IsolatedStorageSecurityState.cs
- hresults.cs
- XmlEncoding.cs
- PropertyPathWorker.cs
- TrackingParameters.cs
- Int32Converter.cs
- WindowsTreeView.cs
- ImageFormatConverter.cs
- Merger.cs
- GeneralTransformCollection.cs
- _ListenerResponseStream.cs
- WindowsFormsHostPropertyMap.cs
- PartialClassGenerationTask.cs
- SHA1CryptoServiceProvider.cs
- ResourceManagerWrapper.cs
- ChainOfDependencies.cs
- ipaddressinformationcollection.cs
- CreateCardRequest.cs
- JoinCqlBlock.cs
- CodeAttributeArgument.cs
- XmlSchemaIdentityConstraint.cs
- StopRoutingHandler.cs
- _DomainName.cs
- DefaultTextStoreTextComposition.cs
- ObjectQueryState.cs
- HttpListenerPrefixCollection.cs
- PointAnimation.cs
- MarkupExtensionReturnTypeAttribute.cs
- PartialArray.cs
- DataGridItem.cs
- DispatcherObject.cs
- FillRuleValidation.cs
- CodeMemberMethod.cs
- RangeValidator.cs
- StrongTypingException.cs
- Polygon.cs
- QilCloneVisitor.cs
- SchemaNotation.cs
- OdbcParameterCollection.cs
- AnnotationResourceCollection.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- SmiMetaDataProperty.cs
- CodeTypeReferenceExpression.cs
- RenderData.cs
- FunctionCommandText.cs
- _OSSOCK.cs
- SafeNativeMethodsMilCoreApi.cs
- DataSourceComponent.cs
- ArraySortHelper.cs