NHibernate.Lob.AbstractLobType.Get C# (CSharp) Method

Get() protected method

protected Get ( IDataReader rs, int ordinal ) : object
rs IDataReader
ordinal int
return object
		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());
			}
		}