Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- CatalogPart.cs
- ServiceContractGenerationContext.cs
- SoapBinding.cs
- ConsoleEntryPoint.cs
- EncodingConverter.cs
- X509CertificateStore.cs
- dbenumerator.cs
- RtfToken.cs
- ShaperBuffers.cs
- SqlTransaction.cs
- BinaryExpression.cs
- MimeXmlImporter.cs
- WebPartEditorOkVerb.cs
- ActivityInterfaces.cs
- TemplateInstanceAttribute.cs
- WebPartAuthorizationEventArgs.cs
- OdbcConnectionHandle.cs
- SolidColorBrush.cs
- RecognizerInfo.cs
- externdll.cs
- TextInfo.cs
- XMLSchema.cs
- PointKeyFrameCollection.cs
- SelectedPathEditor.cs
- Mappings.cs
- MouseEventArgs.cs
- MediaScriptCommandRoutedEventArgs.cs
- BatchServiceHost.cs
- DataProtection.cs
- SkewTransform.cs
- Ops.cs
- ImplicitInputBrush.cs
- PackageRelationship.cs
- SafePointer.cs
- RuntimeConfigurationRecord.cs
- BulletChrome.cs
- AQNBuilder.cs
- TypeForwardedFromAttribute.cs
- EnumMember.cs
- Part.cs
- CompilerInfo.cs
- OverflowException.cs
- CompModSwitches.cs
- CompositionAdorner.cs
- CreateUserWizardStep.cs
- SoundPlayer.cs
- RelationshipDetailsCollection.cs
- ToolStripRenderer.cs
- DecimalAverageAggregationOperator.cs
- TextFormatterImp.cs
- SqlDataSourceEnumerator.cs
- SchemaNamespaceManager.cs
- DocumentViewer.cs
- AppSettingsReader.cs
- ConfigPathUtility.cs
- PreviewKeyDownEventArgs.cs
- FixedSOMFixedBlock.cs
- WebPartsPersonalizationAuthorization.cs
- ItemsControl.cs
- VirtualizingStackPanel.cs
- HwndHost.cs
- TextTreeObjectNode.cs
- XmlTypeAttribute.cs
- ArgIterator.cs
- CollectionBuilder.cs
- Int64KeyFrameCollection.cs
- ResourcePermissionBase.cs
- EncoderReplacementFallback.cs
- safelink.cs
- IsolatedStoragePermission.cs
- TrackingConditionCollection.cs
- BitmapMetadataEnumerator.cs
- DetailsViewRowCollection.cs
- CLSCompliantAttribute.cs
- TypeSystem.cs
- LingerOption.cs
- SelectionItemPattern.cs
- ClientApiGenerator.cs
- MenuRenderer.cs
- SettingsPropertyNotFoundException.cs
- DocumentPageView.cs
- GPRECTF.cs
- SafeTimerHandle.cs
- HttpHandler.cs
- DataListItemCollection.cs
- StylusPlugin.cs
- Triangle.cs
- SQLDecimal.cs
- ErrorHandlerModule.cs
- BuildProvidersCompiler.cs
- XmlSchemaParticle.cs
- Privilege.cs
- WorkflowMarkupSerializationManager.cs
- OciEnlistContext.cs
- SystemParameters.cs
- GrammarBuilder.cs
- webclient.cs
- NamedPermissionSet.cs
- ControlValuePropertyAttribute.cs
- WebBrowser.cs