title: Are Hashtables Serializable?
body: <p>I see a pervasive <a href="https://blogs.msdn.microsoft.com/adam/2010/09/10/how-to-serialize-a-dictionary-or-hashtable-in-c/" rel="noreferrer">belief</a> (2009 article) throughout the internet that the <a href="https://msdn.microsoft.com/en-us/library/system.collections.hashtable(v=vs.110).aspx" rel="noreferrer"><code>Hashtable</code></a> class is not serializable; however, I cannot find any modern documentation that supports this notion. </p>
  
  <p>The belief stems from another ill-documented belief that the <a href="https://msdn.microsoft.com/en-us/library/s4ys34ea(v=vs.110).aspx" rel="noreferrer"><code>IDictionary</code></a> interface prevents serialization; however, I cannot find anything in MSDN that supports this claim, today. </p>
  
  <p>Further, <code>Hashtable</code> implements <code>ISerializable</code> and contains extension methods that accept serialization information. </p>
  
  <p>So, what's the deal? Is <code>Hashtable</code> serializable? Where is the documentation that supports this notion surrounding <code>IDictionary</code>?</p>
  
  <p><strong>Further Clarification</strong> (<em>please read</em>):</p>
  
  <p>The statement that <code>IDictionary</code> is not serializable is supported by plenty of documentation; however, this focuses on the use of XML-based serialization interactions with a class. <code>ISerializable</code> as mentioned both in the comments, below, and through MSDN indicates that a class is serializable. It also means the class the must be responsible for its own serialization. </p>
  
  <p>I think this negates the statement that a Hashtable is not serializable. That is perhaps the genesis of my question. </p>