title: C#: Render object as XML
body: <p>I am looking for a way to convert an object tree to XML. It would be fun to write, but I am sure someone has already written it. Here is my wish list:</p>
  
  <ul>
  <li>It should not care about constructors</li>
  <li>It should ideally handle circular references (not too fussed how)</li>
  <li>It should not require changes to the objects - e.g., no custom attributes</li>
  <li>It should not care about or require known types (e.g., XmlInclude)</li>
  <li>The XML should be dead simple - it needs to be human readable by members of the operations team </li>
  <li>If a property can't be serialized, it should just suppress the error and continue</li>
  <li>Can handle lists and dictionaries</li>
  </ul>
  
  <p>I don't need to reconstruct the object model, so a write-only solution is fine (probably expected).</p>
  
  <p>I think that discounts:</p>
  
  <ul>
  <li>XmlSerializer - needs parameterless constructors, no circular reference support</li>
  <li>DataContractSerializer - needs attributes (opt in)</li>
  </ul>