Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / EmptyReadOnlyDictionaryInternal.cs / 1305376 / EmptyReadOnlyDictionaryInternal.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: EmptyReadOnlyDictionaryInternal ** **[....] ** ** ** Purpose: List for exceptions. ** ** ===========================================================*/ using System.Diagnostics.Contracts; 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"); Contract.EndContractBlock(); // 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")); } Contract.EndContractBlock(); 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"); Contract.EndContractBlock(); 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"); Contract.EndContractBlock(); 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
- SqlDataRecord.cs
- StringStorage.cs
- DataGridCellsPresenter.cs
- CellTreeNodeVisitors.cs
- QueryResults.cs
- SeparatorAutomationPeer.cs
- DelegateHelpers.Generated.cs
- RequestSecurityToken.cs
- GroupQuery.cs
- NewArray.cs
- ProcessHostMapPath.cs
- SerializerDescriptor.cs
- HierarchicalDataBoundControlAdapter.cs
- ListViewSelectEventArgs.cs
- CharUnicodeInfo.cs
- RequestCachePolicy.cs
- PasswordRecovery.cs
- ConfigUtil.cs
- DataGridViewCellCollection.cs
- Annotation.cs
- FullTrustAssemblyCollection.cs
- RequestCachingSection.cs
- StorageScalarPropertyMapping.cs
- SpecularMaterial.cs
- WindowsProgressbar.cs
- BookmarkOptionsHelper.cs
- TextSpan.cs
- WindowsSysHeader.cs
- WebSysDefaultValueAttribute.cs
- GenericWebPart.cs
- ArgumentNullException.cs
- Clock.cs
- Triangle.cs
- LabelEditEvent.cs
- MetaChildrenColumn.cs
- ViewBox.cs
- FileLogRecordHeader.cs
- ManagedCodeMarkers.cs
- ListView.cs
- Quaternion.cs
- ListMarkerLine.cs
- basecomparevalidator.cs
- TagPrefixCollection.cs
- NetSectionGroup.cs
- Query.cs
- ScalarType.cs
- URLString.cs
- PrimitiveSchema.cs
- SecurityTokenTypes.cs
- GridViewSelectEventArgs.cs
- WebPartEditorApplyVerb.cs
- SqlBulkCopyColumnMappingCollection.cs
- ProfilePropertyNameValidator.cs
- TableLayoutPanelCodeDomSerializer.cs
- EventSinkHelperWriter.cs
- MessageBox.cs
- AtlasWeb.Designer.cs
- OrCondition.cs
- EditorBrowsableAttribute.cs
- coordinatorfactory.cs
- ThemeDirectoryCompiler.cs
- CompilerErrorCollection.cs
- documentsequencetextcontainer.cs
- TemporaryBitmapFile.cs
- UIElementIsland.cs
- XmlSchemaImporter.cs
- MouseOverProperty.cs
- SqlCacheDependency.cs
- SecurityTokenException.cs
- DoWhile.cs
- EntityDataSourceEntitySetNameItem.cs
- DynamicRenderer.cs
- FormatConvertedBitmap.cs
- InvokePatternIdentifiers.cs
- MetaData.cs
- Int32Storage.cs
- XmlSecureResolver.cs
- Control.cs
- DebugView.cs
- OpenTypeLayoutCache.cs
- ScriptControl.cs
- TextBoxView.cs
- HistoryEventArgs.cs
- RightsManagementInformation.cs
- WebPartZone.cs
- SessionEndingEventArgs.cs
- Event.cs
- DataKey.cs
- HttpChannelHelper.cs
- UpdatePanel.cs
- HostedHttpTransportManager.cs
- SecurityRuntime.cs
- RedBlackList.cs
- XmlConverter.cs
- ReadOnlyDataSource.cs
- COM2EnumConverter.cs
- XamlTemplateSerializer.cs
- Ticks.cs
- AccessKeyManager.cs
- UriTemplateDispatchFormatter.cs