title: Create type and initialize it at run-time
body: <p>Suppose I have <code>Dictionary</code> like this:</p>
  
  <pre><code>Dictionary&lt;string, string&gt; values = new Dictionary&lt;string, string&gt;()
          {
              { "Name" , "John Smith"},
              { "Age", "34"}
          };
  </code></pre>
  
  <p>Now I want to create type from that dictionary and initialize it with values in run-time so that I was able to access it's properties with reflection.</p>
  
  <p>For this example I want object with property <code>Name</code> equals to <code>"Jon Smith"</code> and <code>Age</code> equals to <code>34</code>.</p>
  
  <p><em>Edit:</em>
  I need this to compare two objects with semantic comparison library such as <a href="http://blogs.msdn.com/b/ivo_manolov/archive/2010/07/29/10043968.aspx" rel="nofollow">TestApi</a>.   First object created by other code that has strong type </p>
  
  <pre><code>class Person 
  {
      public string Name {get; set;}
      public int Age { get; set;}
  } 
  </code></pre>
  
  <p>and other I need to create from other source like xml file (but not necessary). Types that would be compared are known only in run-time.</p>