Oi Renan,
O que vc quer dizer por "serializar" o objeto? Vc tem um banco de dados, certo? Imagina que vc tem isso:
class NF {
double valor ;
Estado e;
}
class Ativo : Estado { ... }
class Inativo : Estado { ... }
Na sua tabela NF
, vc pode ter um schema (double, varchar)
e salvar os dados assim: (1000, 'Ativo'), (2000, 'Inativo')
.
Quando carregar a linha do banco, fará (em pseudo-codigo):
double valor = rs.GetCampoDoBanco("valor");
String nomeDoEstado = rs.GetCampoDoBanco("estado");
var nf = new NF(valor, InstanciaPorReflection(nomeDoEstado);
Dei uma rápida googlada por "NHibernate State Pattern" e vi que tem muito post que exemplifica com nhibernate. Dá uma olhada!
Conseguiu entender?
Um abraço!