Code:
/ FX-1434 / FX-1434 / 1.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
- OutputCacheSettingsSection.cs
- WebUtility.cs
- ReaderWriterLock.cs
- XmlSchemaFacet.cs
- WebServiceClientProxyGenerator.cs
- XmlSchemaType.cs
- BaseUriWithWildcard.cs
- Parameter.cs
- HeaderedItemsControl.cs
- InheritedPropertyChangedEventArgs.cs
- EntityDataSourceQueryBuilder.cs
- InkCanvas.cs
- HuffCodec.cs
- UIPermission.cs
- RegistryPermission.cs
- JpegBitmapDecoder.cs
- XhtmlTextWriter.cs
- FtpWebResponse.cs
- MimeTypePropertyAttribute.cs
- GenericTextProperties.cs
- TdsParserSafeHandles.cs
- DefaultValueAttribute.cs
- OutputScopeManager.cs
- RangeValidator.cs
- FileDialogCustomPlace.cs
- DynamicDataResources.Designer.cs
- QueryCursorEventArgs.cs
- BinHexEncoder.cs
- ArraySortHelper.cs
- SystemResources.cs
- ConstraintStruct.cs
- DesignerDataParameter.cs
- AssociatedControlConverter.cs
- CompilationLock.cs
- FontStretch.cs
- DataException.cs
- BamlResourceSerializer.cs
- Cursors.cs
- RequiredFieldValidator.cs
- FunctionParameter.cs
- SmtpMail.cs
- TemplateKey.cs
- XmlDataSourceNodeDescriptor.cs
- SaveFileDialog.cs
- ImageAnimator.cs
- documentsequencetextcontainer.cs
- ClipboardProcessor.cs
- LineServicesRun.cs
- MemoryFailPoint.cs
- DefinitionBase.cs
- ErrorWrapper.cs
- AutomationPropertyInfo.cs
- Html32TextWriter.cs
- Pens.cs
- TraceRecord.cs
- IgnoreFlushAndCloseStream.cs
- ToolStripPanelCell.cs
- ToolStripPanel.cs
- CompilerGlobalScopeAttribute.cs
- compensatingcollection.cs
- DataFieldConverter.cs
- CodeTypeDelegate.cs
- ProfileBuildProvider.cs
- DataObjectEventArgs.cs
- CancellationTokenRegistration.cs
- ObjectCloneHelper.cs
- ArithmeticException.cs
- HighlightComponent.cs
- ISFClipboardData.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- CommandField.cs
- ObjectSpanRewriter.cs
- LoginCancelEventArgs.cs
- ServiceNotStartedException.cs
- MessageHeaderException.cs
- DataColumnMappingCollection.cs
- EditingCoordinator.cs
- RotateTransform3D.cs
- SqlUserDefinedAggregateAttribute.cs
- BindValidationContext.cs
- Int32Animation.cs
- InternalDispatchObject.cs
- View.cs
- KeyTimeConverter.cs
- DomNameTable.cs
- Helpers.cs
- LocalFileSettingsProvider.cs
- Floater.cs
- SmiEventSink_DeferedProcessing.cs
- SecondaryIndex.cs
- IERequestCache.cs
- CalendarDateRange.cs
- DataControlFieldHeaderCell.cs
- PageHandlerFactory.cs
- Parser.cs
- HttpClientProtocol.cs
- DataServiceResponse.cs
- PassportIdentity.cs
- GradientBrush.cs
- DependencyPropertyConverter.cs