Como eu serializo todas as propriedades de um objeto mapeado pelo NHibernate?

Eu tenho alguns métodos da web que retornam meus objetos de volta como XML serializado. Está apenas serializando as propriedades do objeto mapeadas pelo NHibernate ... alguém tem alguma percepção? Parece que os métodos da web estão realmente serializando os proxies do NHibernate em vez das minhas classes. Eu tentei usar [XMLInclude] e [XMLElement], mas as propriedades ainda não estão serializando. Eu tenho uma maneira muito horrível de contornar isso, mas me perguntei se havia uma maneira melhor!

Algo assim:

<?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
    }
}

Obviamente, isso não é maneira de escrever código. Se eu não tiver o mapeamento "falso" lá (propriedade UglyHack), essa propriedade não será serializada. Por enquanto eu estou olhando para usar (Data) Transfer Objects, e pode estar em algo usando reflexão ...

questionAnswers(3)

yourAnswerToTheQuestion