protected virtual object Get(IDataReader rs, int ordinal)
{
int bufferSize = 0x1000;
byte[] buffer = new byte[bufferSize];
int readBytes = (int)rs.GetBytes(ordinal, 0L, buffer, 0, bufferSize);
long position = readBytes;
using (MemoryStream data = new MemoryStream(readBytes))
{
if (readBytes >= bufferSize)
while (readBytes > 0)
{
data.Write(buffer, 0, readBytes);
position += (readBytes = (int)rs.GetBytes(ordinal, position, buffer, 0, bufferSize));
}
data.Write(buffer, 0, readBytes);
data.Flush();
if (data.Length == 0)
return GetValue(new byte[0]);
return GetValue(data.ToArray());
}
}