Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- FrameworkElement.cs
- MobileControlDesigner.cs
- BuildProviderUtils.cs
- OpenTypeLayout.cs
- DoubleCollectionConverter.cs
- Translator.cs
- RelationshipEndCollection.cs
- CacheRequest.cs
- TraceUtility.cs
- GorillaCodec.cs
- CompilationSection.cs
- ImportOptions.cs
- XslException.cs
- MatrixConverter.cs
- Main.cs
- DocumentViewerBaseAutomationPeer.cs
- CatalogZone.cs
- ImageSource.cs
- OracleBFile.cs
- RowType.cs
- RenderContext.cs
- TypeFieldSchema.cs
- DropDownList.cs
- DesignerView.Commands.cs
- DesignerSerializationOptionsAttribute.cs
- DataPagerFieldItem.cs
- GroupItem.cs
- HybridObjectCache.cs
- RootProfilePropertySettingsCollection.cs
- Point.cs
- PasswordRecoveryDesigner.cs
- Rect.cs
- AttributeParameterInfo.cs
- TogglePattern.cs
- SwitchAttribute.cs
- ResXDataNode.cs
- OpCellTreeNode.cs
- CodeStatement.cs
- UnSafeCharBuffer.cs
- DiscoveryOperationContextExtension.cs
- CodeStatement.cs
- DataSpaceManager.cs
- ToolStripDropDownButton.cs
- Image.cs
- CompilerScope.Storage.cs
- ButtonChrome.cs
- FilterQuery.cs
- ObjectNavigationPropertyMapping.cs
- XmlSchemaAll.cs
- Comparer.cs
- Page.cs
- XhtmlBasicLiteralTextAdapter.cs
- WebControl.cs
- DrawTreeNodeEventArgs.cs
- ToolboxItemCollection.cs
- ObjectViewQueryResultData.cs
- SymbolType.cs
- RIPEMD160Managed.cs
- KerberosTicketHashIdentifierClause.cs
- OdbcConnectionPoolProviderInfo.cs
- WorkflowCompensationBehavior.cs
- Calendar.cs
- SignedPkcs7.cs
- Solver.cs
- FreezableOperations.cs
- ComplexTypeEmitter.cs
- ConnectionManagementElement.cs
- ToolStripDropDownClosedEventArgs.cs
- InstalledFontCollection.cs
- FieldNameLookup.cs
- Ticks.cs
- XamlStyleSerializer.cs
- _FixedSizeReader.cs
- RuleElement.cs
- ProcessHostServerConfig.cs
- PlatformCulture.cs
- ProfileBuildProvider.cs
- NavigationEventArgs.cs
- SqlFunctionAttribute.cs
- PointCollection.cs
- UnauthorizedWebPart.cs
- ScrollProviderWrapper.cs
- Decoder.cs
- SessionEndingCancelEventArgs.cs
- PopupEventArgs.cs
- PageScaling.cs
- GeneralTransform2DTo3DTo2D.cs
- DataIdProcessor.cs
- Compiler.cs
- TextServicesDisplayAttributePropertyRanges.cs
- MenuItem.cs
- BatchParser.cs
- CollectionAdapters.cs
- SecurityPolicySection.cs
- CardSpaceException.cs
- ProcessInputEventArgs.cs
- ResourceCategoryAttribute.cs
- VectorAnimation.cs
- documentation.cs
- XmlCountingReader.cs