que tienen algunos métodos web que devuelven los objetos de mi espalda como XML serializado. Solo está serializando las propiedades asignadas 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 todavía no están serializadas. Tengo una forma realmente horrible de evitar esto, pero me preguntaba si habría una mejor manera.¿Cómo serializar todas las propiedades de un objeto mapeado-NHibernate?
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 es, obviamente, no hay manera de escribir código. Si no tengo el mapeo "falso" en ese país (propiedad UglyHack), no será serializado esa propiedad. Por ahora estoy buscando en el uso (datos) Transfer Objects, y puede ser a algo utilizando la reflexión ...
Por favor, publique un pequeño ejemplo. –