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
- ToolStripGrip.cs
- MetadataSource.cs
- PasswordBox.cs
- DateTimePicker.cs
- BitmapVisualManager.cs
- PerformanceCounterCategory.cs
- ManagementObjectSearcher.cs
- ServicePoint.cs
- ImageListUtils.cs
- Expander.cs
- PageBuildProvider.cs
- BitmapFrameDecode.cs
- WindowsProgressbar.cs
- PageSettings.cs
- AuthorizationRule.cs
- FilterQuery.cs
- Query.cs
- RepeaterDesigner.cs
- AttachmentCollection.cs
- ToolboxComponentsCreatingEventArgs.cs
- BitmapFrame.cs
- MemberHolder.cs
- RegistrySecurity.cs
- Property.cs
- WmpBitmapDecoder.cs
- DataObjectFieldAttribute.cs
- NativeObjectSecurity.cs
- ToolStripLabel.cs
- PageSettings.cs
- TerminatorSinks.cs
- BitmapEffectOutputConnector.cs
- Vector3DAnimationBase.cs
- ProfileGroupSettings.cs
- ThreadExceptionDialog.cs
- ToolStripContainerActionList.cs
- TriggerCollection.cs
- EDesignUtil.cs
- XPathMultyIterator.cs
- SqlBuilder.cs
- ContextBase.cs
- XmlSchemaComplexType.cs
- ConfigurationStrings.cs
- HwndKeyboardInputProvider.cs
- ModelTreeEnumerator.cs
- WorkflowTransactionOptions.cs
- CacheRequest.cs
- UnmanagedHandle.cs
- SimpleBitVector32.cs
- _ListenerResponseStream.cs
- CodeEntryPointMethod.cs
- SchemaName.cs
- AncillaryOps.cs
- XmlDataCollection.cs
- AttributeSetAction.cs
- NumberSubstitution.cs
- X509Certificate2.cs
- ThemeInfoAttribute.cs
- ConstraintManager.cs
- NotSupportedException.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- MimeParameters.cs
- OleDbRowUpdatingEvent.cs
- EffectiveValueEntry.cs
- EFColumnProvider.cs
- FilterRepeater.cs
- WindowsGraphicsCacheManager.cs
- LoadedOrUnloadedOperation.cs
- Matrix.cs
- XmlSchemaComplexType.cs
- DataGridViewCellStateChangedEventArgs.cs
- MappingException.cs
- OdbcParameter.cs
- BlurEffect.cs
- SqlConnectionManager.cs
- DtrList.cs
- CheckBox.cs
- CompilerTypeWithParams.cs
- PerspectiveCamera.cs
- ProtocolsConfiguration.cs
- FontStyleConverter.cs
- EntitySetDataBindingList.cs
- TransformBlockRequest.cs
- HtmlElementCollection.cs
- EntityContainerRelationshipSet.cs
- BrowserDefinition.cs
- EndpointDispatcher.cs
- FixedTextSelectionProcessor.cs
- MemberPath.cs
- TypeInfo.cs
- NonParentingControl.cs
- SubpageParaClient.cs
- SspiHelper.cs
- Condition.cs
- Sequence.cs
- WebContext.cs
- coordinatorfactory.cs
- oledbmetadatacollectionnames.cs
- DbTransaction.cs
- XmlSignatureProperties.cs
- SoapIgnoreAttribute.cs