quinta-feira, 18 de dezembro de 2014

Serializando entidades do LINQ

Fala galera,

Após um longo período de inatividade vou compartilhar um código para serialização/deserialização de objetos do LINQ.

No meu caso, era preciso armazenar uma lista de objetos do LINQ em sessão. Porém, o sessionstate mode foi alterado de in-proc para sqlserver.

Com isso, passou a ocorrer erro pois o framework informava que a minha entidade no LINQ não era serializável. A solução foi serializar os objetos utilizando a classe "DataContractJsonSerializer".

Seguem os métodos para serialização e deserialização dos objetos:

public static MemoryStream SerializeObject(object obj)
{
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(obj.GetType());
ser.WriteObject(stream1, obj);
return stream1;
}

public static object DeserializeObject(object obj, MemoryStream stream)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(obj.GetType());
stream.Position = 0;
return ser.ReadObject(stream);
}

Abraços e até a próxima!!