title: How do you convert any C# object to an ExpandoObject?
body: <p>I've read a lot about how <strong>ExpandoObject</strong> can be used to dynamically create objects from scratch by adding properties, but I haven't yet found how you do the same thing starting from a non-dynamic C# object that you already have.</p>
  
  <p>For instance, I have this trivial class:</p>
  
  <pre><code>public class Person
  {
      public int Id { get; set; }
      public string Name { get; set; }
      public string Address { get; set; }
      public string Telephone { get; set; }
  }
  </code></pre>
  
  <p>I would like to convert this to ExpandoObject so that I can add or remove properties based on what it has already, rather than rebuilding the same thing from scratch. Is this possible?</p>
  
  <p><em>Edit</em>: the questions marked as duplicate are clearly NOT duplicates of this one.</p>