Code:
/ DotNET / DotNET / 8.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
- TableRow.cs
- FindProgressChangedEventArgs.cs
- SpanIndex.cs
- WebServiceMethodData.cs
- Stylus.cs
- ScriptServiceAttribute.cs
- URLIdentityPermission.cs
- EntityDataSourceWizardForm.cs
- WindowShowOrOpenTracker.cs
- ThemeDictionaryExtension.cs
- RelationshipEnd.cs
- Setter.cs
- XamlSerializerUtil.cs
- ListBoxAutomationPeer.cs
- SmtpException.cs
- BaseParagraph.cs
- IPEndPointCollection.cs
- HttpHandlersSection.cs
- UnsafeCollabNativeMethods.cs
- AdornerHitTestResult.cs
- ThreadStartException.cs
- LogEntryHeaderDeserializer.cs
- AttributeCollection.cs
- RunClient.cs
- DataGridState.cs
- ErrorReporting.cs
- MetadataProperty.cs
- XmlConverter.cs
- ScrollPattern.cs
- ModelItemKeyValuePair.cs
- HMACSHA384.cs
- RequestQueue.cs
- DefaultHttpHandler.cs
- XPathExpr.cs
- SpellerError.cs
- EventLogPermissionEntryCollection.cs
- ToolStrip.cs
- GorillaCodec.cs
- DataPager.cs
- UnmanagedMarshal.cs
- Popup.cs
- ProxyElement.cs
- DocumentReferenceCollection.cs
- DataListItemCollection.cs
- SineEase.cs
- LinqDataSourceView.cs
- FlowDocumentView.cs
- StrokeNodeEnumerator.cs
- PropertyOverridesDialog.cs
- WindowsTokenRoleProvider.cs
- TypeHelpers.cs
- PageParserFilter.cs
- ExpressionBuilderContext.cs
- WindowsPen.cs
- SafeBitVector32.cs
- ProxyGenerationError.cs
- DrawListViewColumnHeaderEventArgs.cs
- ConfigXmlElement.cs
- DesignerContextDescriptor.cs
- OutputCacheSettings.cs
- UnmanagedMemoryStream.cs
- NetworkInterface.cs
- ApplicationProxyInternal.cs
- FileClassifier.cs
- WindowsListViewScroll.cs
- DataGridViewRowCollection.cs
- ValidationVisibilityAttribute.cs
- ErrorTableItemStyle.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- remotingproxy.cs
- DataSourceListEditor.cs
- ColumnClickEvent.cs
- XAMLParseException.cs
- BamlTreeNode.cs
- Span.cs
- Knowncolors.cs
- ipaddressinformationcollection.cs
- SiteMapHierarchicalDataSourceView.cs
- XpsFont.cs
- WebHttpElement.cs
- DocumentAutomationPeer.cs
- DocumentPage.cs
- NullReferenceException.cs
- HttpsHostedTransportConfiguration.cs
- GridViewEditEventArgs.cs
- Solver.cs
- ListControlConvertEventArgs.cs
- TextProperties.cs
- MissingManifestResourceException.cs
- ImageSourceConverter.cs
- ColumnHeader.cs
- CodeTypeDeclaration.cs
- ChtmlCommandAdapter.cs
- HttpTransportSecurity.cs
- EncryptedXml.cs
- HttpProfileBase.cs
- DataColumnCollection.cs
- DirectoryNotFoundException.cs
- MemoryStream.cs
- HighlightVisual.cs