Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlTopReducer.cs
- AnnotationObservableCollection.cs
- DataPager.cs
- PrivacyNoticeElement.cs
- FormsAuthenticationConfiguration.cs
- SvcMapFile.cs
- Vector3DCollectionValueSerializer.cs
- DbDataReader.cs
- DebugHandleTracker.cs
- CapabilitiesSection.cs
- Blend.cs
- RegexParser.cs
- CatalogPartCollection.cs
- TabItemWrapperAutomationPeer.cs
- CompositionTarget.cs
- NamedPermissionSet.cs
- ZipFileInfo.cs
- PointIndependentAnimationStorage.cs
- CodeTypeDelegate.cs
- TableLayoutStyle.cs
- LoginNameDesigner.cs
- WindowsFormsLinkLabel.cs
- Misc.cs
- LicFileLicenseProvider.cs
- SafeNativeMethods.cs
- ServicesSection.cs
- TextReader.cs
- DesignerAutoFormatStyle.cs
- ApplicationServiceHelper.cs
- FixedSOMImage.cs
- SerializationStore.cs
- Pens.cs
- OdbcParameterCollection.cs
- FieldMetadata.cs
- BounceEase.cs
- ColorContextHelper.cs
- UriTemplateTableMatchCandidate.cs
- WebScriptClientGenerator.cs
- QueryResults.cs
- TrackingWorkflowEventArgs.cs
- SerializationBinder.cs
- ByteStreamGeometryContext.cs
- FreezableOperations.cs
- UrlAuthorizationModule.cs
- ListenerConfig.cs
- DataGridItemAttachedStorage.cs
- StylusPoint.cs
- WSHttpTransportSecurityElement.cs
- diagnosticsswitches.cs
- WmiEventSink.cs
- DefaultValueAttribute.cs
- DecimalAverageAggregationOperator.cs
- Compiler.cs
- BrowserInteropHelper.cs
- ToolStripDropDown.cs
- DefaultBinder.cs
- CommandHelpers.cs
- ChannelServices.cs
- SizeConverter.cs
- RenamedEventArgs.cs
- HashRepartitionEnumerator.cs
- ThreadAttributes.cs
- HostProtectionPermission.cs
- ContentElementCollection.cs
- ZipIOCentralDirectoryBlock.cs
- MimeReturn.cs
- EditorPartChrome.cs
- SettingsPropertyCollection.cs
- SpellerInterop.cs
- Command.cs
- remotingproxy.cs
- ClientRuntimeConfig.cs
- SignatureToken.cs
- listitem.cs
- RtfControls.cs
- Evaluator.cs
- ObjectDataSource.cs
- NetDataContractSerializer.cs
- CompositeCollection.cs
- SystemColorTracker.cs
- HMAC.cs
- BamlResourceContent.cs
- EpmContentSerializerBase.cs
- ProfileEventArgs.cs
- RangeValueProviderWrapper.cs
- NativeMethods.cs
- IERequestCache.cs
- MsdtcClusterUtils.cs
- DataReaderContainer.cs
- LineVisual.cs
- File.cs
- ObjRef.cs
- ClientConfigPaths.cs
- TextBlock.cs
- ButtonFieldBase.cs
- MediaSystem.cs
- codemethodreferenceexpression.cs
- ResumeStoryboard.cs
- IdentitySection.cs
- DescendantBaseQuery.cs