¿Cómo serializo todas las propiedades de un objeto mapeado NHibernate?

Tengo algunos métodos web que devuelven mis objetos como XML serializado. Solo está serializando las propiedades mapeadas de NHibernate del objeto ... ¿alguien tiene alguna idea? Parece ser que los métodos web en realidad están serializando los proxies NHibernate en lugar de mis clases. He intentado usar [XMLInclude] y [XMLElement], pero las propiedades aún no se están serializando. Tengo una manera realmente horrible de evitar esto, ¡pero me preguntaba si habría una mejor manera!

Algo como esto:

<?xml version="1.0" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="StoryManager" assembly="StoryManager">
  <class name="Graphic" table="graphics" lazy="false">
    <id name="Id" column="id" type="int" unsaved-value="0" >
      <generator class="identity"/>
    </id>

    <property name="Assigned" />
    <property name="Due" />
    <property name="Completed" />
    <property name="UglyHack" insert="false" update="false" />


    <many-to-one name="Parent" class="Story" column="story_id"/>

  </class>
</hibernate-mapping>

public class Graphic
{
    private int m_id;
    public virtual int Id
    {
        get { return m_id; }
        set { m_id = value; }
    }

    private DateTime? m_assigned;
    public virtual DateTime? Assigned
    {
        get { return m_assigned; }
        set { m_assigned = value; }
    }

    private DateTime? m_due;
    public virtual DateTime? Due
    {
        get { return m_due; }
        set { m_due = value; }
    }

    private DateTime? m_completed;
    public virtual DateTime? Completed
    {
        get { return m_completed; }
        set { m_completed = value; }
    }

    public bool UglyHack
    {
        get { return m_due < m_completed; } // return something besides a real mapped variable
        set {} // trick NHibernate into thinking it's doing something
    }
}

Esto obviamente no es una forma de escribir código. Si no tengo el mapeo "falso" allí (propiedad UglyHack), esa propiedad no será serializada. Por ahora estoy estudiando el uso de objetos de transferencia (datos), y puedo estar en algo usando la reflexión ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta