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
- TabPanel.cs
- XmlWhitespace.cs
- WindowsEditBox.cs
- SqlInternalConnectionSmi.cs
- MexTcpBindingCollectionElement.cs
- SynthesizerStateChangedEventArgs.cs
- ColumnResizeAdorner.cs
- XPathParser.cs
- RTLAwareMessageBox.cs
- NameValueConfigurationCollection.cs
- GifBitmapDecoder.cs
- HostedHttpContext.cs
- milrender.cs
- ManifestResourceInfo.cs
- XmlCharCheckingReader.cs
- HtmlGenericControl.cs
- SvcMapFile.cs
- Utils.cs
- SystemColorTracker.cs
- OrderedDictionaryStateHelper.cs
- XmlEntity.cs
- MetaType.cs
- COM2PropertyBuilderUITypeEditor.cs
- LabelLiteral.cs
- IteratorFilter.cs
- RegexTree.cs
- Int32KeyFrameCollection.cs
- ByteStorage.cs
- ContextInformation.cs
- ImageListUtils.cs
- StringTraceRecord.cs
- SelectedDatesCollection.cs
- NameTable.cs
- HierarchicalDataSourceControl.cs
- WindowsUpDown.cs
- XmlEncodedRawTextWriter.cs
- Debug.cs
- LayoutTable.cs
- AdornedElementPlaceholder.cs
- ArrayTypeMismatchException.cs
- SortDescription.cs
- SerTrace.cs
- PublishLicense.cs
- LicenseContext.cs
- TcpAppDomainProtocolHandler.cs
- LookupBindingPropertiesAttribute.cs
- BCLDebug.cs
- ToolStripItemCollection.cs
- FrameworkObject.cs
- EventLogTraceListener.cs
- HttpCookiesSection.cs
- AnnotationStore.cs
- LiteralControl.cs
- ObjectViewListener.cs
- _ConnectionGroup.cs
- NativeActivityAbortContext.cs
- DictionaryContent.cs
- CustomAttribute.cs
- ApplicationServiceHelper.cs
- DataGridViewImageCell.cs
- EpmCustomContentDeSerializer.cs
- ConstraintConverter.cs
- FlowDocumentPage.cs
- DesignerForm.cs
- FixedHighlight.cs
- UriSection.cs
- JavascriptXmlWriterWrapper.cs
- Converter.cs
- DialogResultConverter.cs
- Automation.cs
- PresentationAppDomainManager.cs
- DeobfuscatingStream.cs
- DateTimeFormatInfoScanner.cs
- Int32RectConverter.cs
- RadioButtonRenderer.cs
- HostedHttpContext.cs
- TextChangedEventArgs.cs
- SQLDoubleStorage.cs
- DocumentEventArgs.cs
- ObjectSecurity.cs
- MediaSystem.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- InkCanvasSelectionAdorner.cs
- DBSqlParserColumn.cs
- HandlerBase.cs
- GeneralTransform3DTo2D.cs
- ToolBarButtonDesigner.cs
- WsdlHelpGeneratorElement.cs
- Base64Decoder.cs
- TileBrush.cs
- BindingMAnagerBase.cs
- ConvertersCollection.cs
- Utils.cs
- WindowsPrincipal.cs
- ConfigurationErrorsException.cs
- RuntimeEnvironment.cs
- ExtendedPropertyDescriptor.cs
- LinqExpressionNormalizer.cs
- DataSourceGeneratorException.cs
- LicenseContext.cs