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".
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);
}
{
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!!