Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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")); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // 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")); } } } } } // 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
- TextDecorationLocationValidation.cs
- BStrWrapper.cs
- EnumerableRowCollectionExtensions.cs
- Point3DAnimationUsingKeyFrames.cs
- StateMachineDesignerPaint.cs
- ArraySet.cs
- LinearQuaternionKeyFrame.cs
- ObjectRef.cs
- CodeEntryPointMethod.cs
- WindowsFormsSectionHandler.cs
- UniformGrid.cs
- MappingException.cs
- Int64AnimationUsingKeyFrames.cs
- XmlHierarchicalDataSourceView.cs
- XslCompiledTransform.cs
- ToolStripDesignerUtils.cs
- IOException.cs
- PropertyGridView.cs
- CodeDirectionExpression.cs
- EdmToObjectNamespaceMap.cs
- ByteAnimationBase.cs
- UnlockInstanceCommand.cs
- XPathAncestorQuery.cs
- LongValidatorAttribute.cs
- FilteredReadOnlyMetadataCollection.cs
- InputMethod.cs
- Vector3D.cs
- ProfileParameter.cs
- nulltextcontainer.cs
- BitmapEffectDrawing.cs
- wmiprovider.cs
- remotingproxy.cs
- StylusCollection.cs
- StreamWriter.cs
- DoubleStorage.cs
- DispatchChannelSink.cs
- ConsoleTraceListener.cs
- SafeNativeMethodsCLR.cs
- ChannelReliableSession.cs
- SkinBuilder.cs
- __Filters.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- RowBinding.cs
- regiisutil.cs
- PathStreamGeometryContext.cs
- MenuItemStyleCollection.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- MethodCallExpression.cs
- XmlHierarchicalDataSourceView.cs
- StaticSiteMapProvider.cs
- FreezableDefaultValueFactory.cs
- Int16KeyFrameCollection.cs
- LocalizedNameDescriptionPair.cs
- HtmlProps.cs
- DateTimeConverter2.cs
- KeyInterop.cs
- OLEDB_Util.cs
- LockingPersistenceProvider.cs
- SemanticResultValue.cs
- AssemblyName.cs
- CssClassPropertyAttribute.cs
- UnknownBitmapEncoder.cs
- Html32TextWriter.cs
- HighContrastHelper.cs
- PageCodeDomTreeGenerator.cs
- DrawToolTipEventArgs.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- WizardPanel.cs
- Int64Converter.cs
- EntityContainerAssociationSet.cs
- NoPersistScope.cs
- HashHelper.cs
- Ipv6Element.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- OdbcException.cs
- WinEventTracker.cs
- PropertyGrid.cs
- PasswordBoxAutomationPeer.cs
- FullTextLine.cs
- remotingproxy.cs
- FloaterBaseParagraph.cs
- EpmSourcePathSegment.cs
- SingleAnimation.cs
- CaseInsensitiveComparer.cs
- MsmqHostedTransportManager.cs
- wgx_sdk_version.cs
- CustomAttributeSerializer.cs
- ExpressionBuilder.cs
- StorageBasedPackageProperties.cs
- UniformGrid.cs
- NumberFormatter.cs
- FlowNode.cs
- DefaultBinder.cs
- AttributeProviderAttribute.cs
- Deflater.cs
- StorageAssociationTypeMapping.cs
- OperationPickerDialog.cs
- EditableTreeList.cs
- DocumentViewerBaseAutomationPeer.cs
- XmlHierarchyData.cs