public virtual long Size(object clientData) { Stream stream = clientData as Stream; if (stream == null) throw new ArgumentException("Can't get underlying stream to retrieve size from"); return stream.Length; }