protected virtual void Pack(Stream stream, CachedType ct, object obj) { if (obj == null) { stream.WriteInt8(0); return; } if (!ct.IsValueType) { stream.WriteInt8(1); } ct.WriteFunc(this, ct.Type, stream, obj); }