ZipState.cs
Code:
tamamen düzgün çalışma garantisi yok ama bazen yanlış sıkıştırabiliyormuş gerçi ben karşılaşmadım ama aşağıdaki kodlarıda sitemizde ViewState ini sıkıştırmak istediğimiz sayfaya ekliyoruz.
Code:
public static byte[] Compress(byte[] data) { MemoryStream ms = new MemoryStream(); DeflateStream stream = new DeflateStream(ms, CompressionMode.Compress); stream.Write(data, 0, data.Length); stream.Close(); return ms.ToArray(); }public static byte[] Decompress(byte[] data) { MemoryStream ms = new MemoryStream(); ms.Write(data, 0, data.Length); ms.Position = 0; DeflateStream stream = new DeflateStream(ms, CompressionMode.Decompress); MemoryStream temp = new MemoryStream(); byte[] buffer=new byte[1024]; while (true) { int read = stream.Read(buffer, 0, buffer.Length); if (read <= 0) { break; } else { temp.Write(buffer, 0, buffer.Length); } } stream.Close(); return temp.ToArray(); }
protected override void SavePageStateToPersistenceMedium(object state) { LosFormatter formatter = new LosFormatter(); StringWriter writer = new StringWriter(); formatter.Serialize(writer, state); string viewState = writer.ToString(); byte[] data = Convert.FromBase64String(viewState); byte[] compressedData = ZipState.Compress(data); string str = Convert.ToBase64String(compressedData); ClientScript.RegisterHiddenField("__CompressedVIEWSTATE", str); } protected override object LoadPageStateFromPersistenceMedium() { string viewstate = Request.Form["__CompressedVIEWSTATE"]; byte[] data = Convert.FromBase64String(viewstate); byte[] uncompressedData = ZipState.Decompress(data); string str = Convert.ToBase64String(uncompressedData); LosFormatter formatter = new LosFormatter(); return formatter.Deserialize(str); }
Hocam çok teşekkür ederim çalıştı bir gündür bu kodu arıyordum
YanıtlaSil