2using System.Collections;
3using System.Collections.Generic;
4using System.Runtime.Serialization;
11 : IDictionary<TKey, TValue>
12 , ICollection<KeyValuePair<TKey, TValue>>
13 , IEnumerable<KeyValuePair<TKey, TValue>>
18 , IDeserializationCallback
20 #region Private Members
21 private IDictionary<TKey, TValue> m_dictionaryTyped;
22 private IDictionary m_dictionary;
26 #region Default Methods
27 IEnumerator IEnumerable.GetEnumerator()
29 return m_dictionary.GetEnumerator();
31 IDictionaryEnumerator IDictionary.GetEnumerator()
33 return m_dictionary.GetEnumerator();
38 #region Default Properties
39 ICollection IDictionary.Keys
43 return m_dictionary.Keys;
46 ICollection IDictionary.Values
50 return m_dictionary.Values;
56 #region Public Methods
59 m_dictionaryTyped = dictionaryToWrap;
60 m_dictionary = (IDictionary)m_dictionaryTyped;
66 public void Add(TKey key, TValue value)
71 return m_dictionaryTyped.ContainsKey(key);
79 return m_dictionaryTyped.TryGetValue(key, out value);
81 public void Add(KeyValuePair<TKey, TValue> item)
87 public bool Contains(KeyValuePair<TKey, TValue> item)
89 return m_dictionaryTyped.Contains(item);
91 public void CopyTo(KeyValuePair<TKey, TValue>[] array,
int arrayIndex)
93 m_dictionaryTyped.CopyTo(array, arrayIndex);
95 public bool Remove(KeyValuePair<TKey, TValue> item)
101 return m_dictionaryTyped.GetEnumerator();
103 public void Add(
object key,
object value)
108 return m_dictionary.Contains(key);
113 public object this[
object key]
117 return m_dictionary[key];
123 public void CopyTo(Array array,
int index)
128 IDeserializationCallback callback = m_dictionaryTyped as IDeserializationCallback;
129 callback.OnDeserialization(sender);
133 ISerializable serializable = m_dictionaryTyped as ISerializable;
134 serializable.GetObjectData(info, context);
139 #region Public Methods
140 public ICollection<TKey> Keys
144 return ReadOnlyICollection<TKey>.AsReadOnly(m_dictionaryTyped.Keys);
147 public ICollection<TValue> Values
151 return ReadOnlyICollection<TValue>.AsReadOnly(m_dictionaryTyped.Values);
158 return m_dictionaryTyped.Count;
168 public TValue
this[TKey key]
172 return m_dictionaryTyped[key];
182 return m_dictionary.IsFixedSize;
189 return m_dictionary.IsSynchronized;
196 return m_dictionary.SyncRoot;
void Add(object key, object value)
bool Contains(object key)
void Add(KeyValuePair< TKey, TValue > item)
bool Contains(KeyValuePair< TKey, TValue > item)
IEnumerator< KeyValuePair< TKey, TValue > > GetEnumerator()
void OnDeserialization(object sender)
bool TryGetValue(TKey key, out TValue value)
ReadOnlyDictionary(IDictionary< TKey, TValue > dictionaryToWrap)
bool Remove(KeyValuePair< TKey, TValue > item)
static ReadOnlyDictionary< TKey, TValue > AsReadOnly(IDictionary< TKey, TValue > dictionaryToWrap)
void Add(TKey key, TValue value)
void CopyTo(Array array, int index)
bool ContainsKey(TKey key)
void GetObjectData(SerializationInfo info, StreamingContext context)
void CopyTo(KeyValuePair< TKey, TValue >[] array, int arrayIndex)