.net - serializar objectos
Existem várias formas de passar informação entre duas páginas ASPX. Tendo em conta a forma como o redireccionamento é feito, porque se utilizarmos o Server.Transfer, ganhamos mais uma forma de passar informação; as mais utilizadas são a Sessão, o ViewState e a QueryString. Existem outras, que pelas suas características não são tão utilizadas, como a cache e os cookies.A questão coloca-se qdo não queremos apenas passar valores, mas sim objectos. Como passar objectos de uma página para outra? Utilizar o Server.Transfer pode ser uma solução, mas existem outras, como por exemplo através da serialização de deserialiazação do objecto em causa.
Neste caso, o processo seria o seguinte:
- Serializar o objecto que queremos passar (página origem);
- Colocar no ViewState o objecto serializado;
- Na página de destino, obter do ViewState a stream que representa o objecto;
- Deserializar a stream para reconstruir o objecto, desta vez já na página destino.
Segue o código para a serialização:
string strObjectToSave = String.Empty;
MemoryStream ms = new MemoryStream();
IFormatter Iformatter = new BinaryFormatter();
Iformatter.Serialize(ms, objMyObject);
byte[] bMyObject = ms.GetBuffer();
UnicodeEncoding encoding = new UnicodeEncoding();
strObjectToSave = encoding.GetString(bMyObject);
serStr.Append(strObjectToSave);
serStr.Append(";");
Nestes casos é necessário ter em atenção o tamanho da stream gerada na serialização nativa do .net, pois ela pode ser de um tamanho exagerado face ás necessidades. Se for o caso podem e devem ser imprementados os métodos de serialização e deserialização por forma a que a stream diminua de tamanho e se evite de sobrecarregar o ViewState.

1 Comments:
Parabéns por este post, está realmente bom, não só pela técnica explicada da serialização, mas sobretudo pela originalidade.
Tens realmente uma visão e capacidade de conjugação de técnicas acima do normal.
Na sequência de post apetece-me escrever sobre o grau de importância do desenvolvimentoa.
2:59 a.m.
Enviar um comentário
<< Home