protected override object GetData(object value)
{
Blob blob = value as Blob;
if (blob == null) return null;
ArrayBlob ab = blob as ArrayBlob;
if (ab != null && compression == null) return ab.Data;
CompressedBlob cb = blob as CompressedBlob;
if (cb != null && cb.Compression.Equals(compression)) return cb.Data;
using (MemoryStream data = new MemoryStream())
{
if (compression == null)
blob.WriteTo(data);
else
using (Stream cs = compression.GetCompressor(data))
blob.WriteTo(cs);
return data.ToArray();
}
}