title: Identifying NHibernate proxy classes
body: <p>I'm not an NHibernate user; I write a serialization utility library. A user has logged a feature-request that I should handle NHibernate proxy classes, treating them the same as the actual type. At the moment my code is treating them as unexpected inheritance, and throwing an exception.</p>
  
  <p>The code won't know in advance about NHibernate (including no reference, but I'm not aftaid of reflection ;-p)</p>
  
  <p>Is there a robust / guaranteed way of detecting such proxy types? Apparently <code>DataContractSerializer</code> handles this fine, so I'm hoping it is something pretty simple. Perhaps some interface or <code>[attribute]</code> decoration.</p>
  
  <p>Also, during deserialization; at the moment I would be creating the original type (not the NHibernate type). Is this fine for persistence purposes? Or is the proxy type required? If the latter; what is required to create an instance of the proxy type?</p>