title: C# type conversion returning child class when specifying type of base class
body: <p>When I run the following:</p>
  
  <p><code>ParentClass foo = serializer.Deserialize(xmlReader) as ParentClass;
  </code></p>
  
  <p>The xml document loaded in <code>xmlReader</code> is an inherited type of <code>ParentClass</code>. When examined in the debugger, <code>foo</code> is showing as being an instance of the inherited class, not the parent class. Of course, the inherited class is also of type ParentClass, but why does the <code>as</code> keyword have this behavior? Why doesn't C# strip out all the other object information not required to convert to <code>ParentClass</code>.</p>
  
  <p>This is not a problem, but more or less a question out of curiosity. </p>