<Type Name="DictionaryBase" FullName="System.Collections.DictionaryBase">
  <TypeSignature Maintainer="auto" Language="C#" Value="public abstract class DictionaryBase : System.Collections.IDictionary" />
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.Collections.IDictionary</InterfaceName>
    </Interface>
  </Interfaces>
  <Docs>
    <summary>An abstract class that provides a simple way to monitor changes to a  Hashtable.  Derived classes overwrite one or more of the `On' methods to track the changes to the Hashtable.</summary>
    <remarks>This class is a base class that can simplify the development of
strongly typed collections.  The idea being that the insertion of elements
into the Hashtable can be forced to be of a given type.

<para>The `On' members are protected and designed to be used only by derived
classes.
</para></remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected DictionaryBase ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Default constructor.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Clear">
      <MemberSignature Language="C#" Value="public void Clear ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Clears the contents of the dictionary</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="CopyTo">
      <MemberSignature Language="C#" Value="public void CopyTo (Array array, int index);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="array" Type="System.Array" />
        <Parameter Name="index" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="array">The array to copy the contents of the dictionary to.  The array must have a zero-based indexing.</param>
        <param name="index">Starting index within the array where to copy the objects to.</param>
        <summary>Copies the contents of the Dictionary into the target array.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Count">
      <MemberSignature Language="C#" Value="public int Count { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Returns the number of items in the dictionary</summary>
        <value>To be added: an object of type 'int'</value>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Dictionary">
      <MemberSignature Language="C#" Value="protected System.Collections.IDictionary Dictionary { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.IDictionary</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The collection contained as an IDictionary</summary>
        <value>To be added: an object of type 'IDictionary'</value>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetEnumerator">
      <MemberSignature Language="C#" Value="public System.Collections.IDictionaryEnumerator GetEnumerator ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.IDictionaryEnumerator</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Returns an enumerator for the dictionary</summary>
        <returns>The enumerator for the underlying hashtable.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="InnerHashtable">
      <MemberSignature Language="C#" Value="protected System.Collections.Hashtable InnerHashtable { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.Hashtable</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The internal Hashtable representation for this dictionary</summary>
        <value>To be added: an object of type 'Hashtable'</value>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnClear">
      <MemberSignature Language="C#" Value="protected virtual void OnClear ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary> Hook invoked before the clear operation is performed on the DictionaryBase</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnClearComplete">
      <MemberSignature Language="C#" Value="protected virtual void OnClearComplete ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Hook invoked after the clear operation is performed on the DictionaryBase</summary>
        <remarks>The default implementation does nothing, derived classes
 can override this method to be notified of changes</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnGet">
      <MemberSignature Language="C#" Value="protected virtual object OnGet (object key, object current_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="current_value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">Key of the object to retrieve.</param>
        <param name="current_value">Current value of the object associated with <see cref="key" /></param>
        <summary>Hook invoked while fetching data from the DictionaryBase.</summary>
        <returns>This method is provided as a simple way to override the values
returned by the DictionaryBase. </returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnInsert">
      <MemberSignature Language="C#" Value="protected virtual void OnInsert (object key, object current_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="current_value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">Key of the object to insert.</param>
        <param name="current_value">Current value of the object associated with key.</param>
        <summary> Hook invoked before inserting data into the DictionaryBase.</summary>
        <remarks>Derived classes can override this method and perform some
action before the <paramref name="current_value" /> is inserted
into the dictionary.
<para>
The default implementation does nothing, derived classes
can override this method to be notified of changes
</para></remarks>
      </Docs>
    </Member>
    <Member MemberName="OnInsertComplete">
      <MemberSignature Language="C#" Value="protected virtual void OnInsertComplete (object key, object current_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="current_value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">Key of the object to insert</param>
        <param name="current_value">Current value of the object associated with key.</param>
        <summary>Hook invoked after inserting the data into the DictionaryBase</summary>
        <remarks> The default implementation does nothing, derived classes can override this method to be notified of changes.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRemove">
      <MemberSignature Language="C#" Value="protected virtual void OnRemove (object key, object current_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="current_value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">Key of the object to remove</param>
        <param name="current_value">Current value of the object associated with key.</param>
        <summary> Hook invoked before removing a key/value from the DictionaryBase.</summary>
        <remarks> Derived classes can override this method and perform some
action before the <paramref name="current_value" /> is removed
from the dictionary.  </remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRemoveComplete">
      <MemberSignature Language="C#" Value="protected virtual void OnRemoveComplete (object key, object current_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="current_value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">Key of the object to remove.</param>
        <param name="current_value">Current value of the object associated with key.</param>
        <summary>Hook invoked after removing a key/value from the DictionaryBase.</summary>
        <remarks>The default implementation does nothing, derived classes
can override this method to be notified of changes.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnSet">
      <MemberSignature Language="C#" Value="protected virtual void OnSet (object key, object current_value, object new_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="current_value" Type="System.Object" />
        <Parameter Name="new_value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">Key of the object to change</param>
        <param name="current_value">Current value of the object associated with key.</param>
        <param name="new_value">The new value.</param>
        <summary> Hook invoked before changing a value for a key in the DictionaryBase.</summary>
        <remarks>Derived classes can override this method and perform some
action before the <paramref name="current_value" /> is changed
in the dictionary.  </remarks>
      </Docs>
    </Member>
    <Member MemberName="OnSetComplete">
      <MemberSignature Language="C#" Value="protected virtual void OnSetComplete (object key, object current_value, object new_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="current_value" Type="System.Object" />
        <Parameter Name="new_value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">Key of the object to change</param>
        <param name="current_value">Current value of the object associated with key.</param>
        <param name="new_value">To be added.</param>
        <summary>Hook invoked after changing a value for a key in the DictionaryBase.</summary>
        <remarks>The default implementation does nothing, derived classes
 can override this method to be notified of changes</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnValidate">
      <MemberSignature Language="C#" Value="protected virtual void OnValidate (object key, object current_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="current_value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">Key of the object to retrieve</param>
        <param name="current_value">Current value of the object associated with key.</param>
        <summary>Hook invoked after the value has been validated.</summary>
        <remarks>The default implementation does nothing, derived classes
 can override this method to monitor the DictionaryBase.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.ICollection.IsSynchronized">
      <MemberSignature Language="C#" Value="bool ICollection.IsSynchronized { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.ICollection.SyncRoot">
      <MemberSignature Language="C#" Value="object ICollection.SyncRoot { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IDictionary.Add">
      <MemberSignature Language="C#" Value="void IDictionary.Add (object key, object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IDictionary.Contains">
      <MemberSignature Language="C#" Value="bool IDictionary.Contains (object key);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IDictionary.IsFixedSize">
      <MemberSignature Language="C#" Value="bool IDictionary.IsFixedSize { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IDictionary.IsReadOnly">
      <MemberSignature Language="C#" Value="bool IDictionary.IsReadOnly { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IDictionary.Item">
      <MemberSignature Language="C#" Value="object IDictionary.Item[object key] { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">To be added.</param>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IDictionary.Keys">
      <MemberSignature Language="C#" Value="System.Collections.ICollection IDictionary.Keys { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.ICollection</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IDictionary.Remove">
      <MemberSignature Language="C#" Value="void IDictionary.Remove (object key);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IDictionary.Values">
      <MemberSignature Language="C#" Value="System.Collections.ICollection IDictionary.Values { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.ICollection</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="System.Collections.IEnumerable.GetEnumerator">
      <MemberSignature Language="C#" Value="System.Collections.IEnumerator IEnumerable.GetEnumerator ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.IEnumerator</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
</Type>
