Jak serializować wszystkie właściwości obiektu mapowanego w NHibernate?

Mam kilka metod internetowych, które zwracają moje obiekty z powrotem jako serializowany XML. To tylko serializacja właściwości obiektu mapowanych w NHibernate ... każdy ma jakiś wgląd? Wydaje się, że metody internetowe faktycznie serializują proxy NHibernate zamiast moich klas. Próbowałem użyć [XMLInclude] i [XMLElement], ale właściwości nadal nie są serializowane. Mam naprawdę okropny hackish sposób poruszania się po tym, ale zastanawiałem się, czy jest lepszy sposób!

Coś takiego:

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

To oczywiście nie jest sposób na napisanie kodu. Jeśli nie mam tam „fałszywego” mapowania (właściwość UglyHack), ta właściwość nie zostanie zserializowana. Na razie szukam użycia (Data) Transfer Objects i może być coś, co używa refleksji ...

questionAnswers(3)

yourAnswerToTheQuestion