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
- PrefixQName.cs
- PathFigure.cs
- ToolStripItemClickedEventArgs.cs
- FormViewPagerRow.cs
- DependencyPropertyChangedEventArgs.cs
- ClientScriptManagerWrapper.cs
- NamespaceCollection.cs
- EventLogger.cs
- TextEditorDragDrop.cs
- RangeValidator.cs
- GridProviderWrapper.cs
- XmlValidatingReaderImpl.cs
- StandardOleMarshalObject.cs
- DependencyObjectPropertyDescriptor.cs
- URL.cs
- LicenseProviderAttribute.cs
- TextSelectionProcessor.cs
- NameTable.cs
- COMException.cs
- Cursors.cs
- BindingBase.cs
- ClientSponsor.cs
- panel.cs
- ToggleButtonAutomationPeer.cs
- XmlSchemaType.cs
- FormViewDeleteEventArgs.cs
- DBParameter.cs
- CodeNamespaceImport.cs
- InfoCardBaseException.cs
- SerializationAttributes.cs
- OdbcHandle.cs
- NamespaceCollection.cs
- DataServiceRequestArgs.cs
- ApplicationSecurityManager.cs
- X509Chain.cs
- RequestCacheManager.cs
- _AcceptOverlappedAsyncResult.cs
- GenericWebPart.cs
- WebPartConnectionsCloseVerb.cs
- ReferencedType.cs
- XmlSerializationGeneratedCode.cs
- WindowsUpDown.cs
- StringValidatorAttribute.cs
- OverrideMode.cs
- BlurBitmapEffect.cs
- RawMouseInputReport.cs
- DataGridrowEditEndingEventArgs.cs
- AudioException.cs
- DbProviderFactories.cs
- DurableRuntimeValidator.cs
- DragDrop.cs
- CancellationHandlerDesigner.cs
- GifBitmapDecoder.cs
- GestureRecognitionResult.cs
- OdbcReferenceCollection.cs
- DebugInfoGenerator.cs
- SignatureToken.cs
- MediaContext.cs
- ImageSourceConverter.cs
- CapabilitiesUse.cs
- ModuleBuilderData.cs
- ConfigurationValidatorAttribute.cs
- TreeView.cs
- TranslateTransform.cs
- SelectorItemAutomationPeer.cs
- HyperLinkStyle.cs
- PerfCounters.cs
- httpserverutility.cs
- PassportAuthenticationModule.cs
- CannotUnloadAppDomainException.cs
- _SingleItemRequestCache.cs
- LassoHelper.cs
- UTF8Encoding.cs
- UserPreference.cs
- SqlDataReader.cs
- ItemContainerProviderWrapper.cs
- TransformGroup.cs
- InheritanceService.cs
- mediapermission.cs
- SrgsItemList.cs
- DependencySource.cs
- WebPartMinimizeVerb.cs
- UnsafeNativeMethods.cs
- Listbox.cs
- TracePayload.cs
- WorkflowItemPresenter.cs
- ThousandthOfEmRealPoints.cs
- SpeakCompletedEventArgs.cs
- XmlNodeList.cs
- VariableExpressionConverter.cs
- TrustManagerMoreInformation.cs
- SoapSchemaExporter.cs
- UpdateTracker.cs
- SiteMap.cs
- UserControlBuildProvider.cs
- AccessedThroughPropertyAttribute.cs
- HighlightOverlayGlyph.cs
- FocusWithinProperty.cs
- Constraint.cs
- SQLSingleStorage.cs