public byte[] GetBytes()
{
if (m_value == null)
return null;
Type t = m_value.GetType();
if (t.IsArray)
{
if (m_value is byte[])
return m_value as byte[];
else if (m_value is short[])
{
short[] temp = m_value as short[];
byte[] result = new byte[temp.Length * sizeof(short)];
Buffer.BlockCopy(temp, 0, result, 0, result.Length);
return result;
}
else if (m_value is ushort[])
{
ushort[] temp = m_value as ushort[];
byte[] result = new byte[temp.Length * sizeof(ushort)];
Buffer.BlockCopy(temp, 0, result, 0, result.Length);
return result;
}
else if (m_value is int[])
{
int[] temp = m_value as int[];
byte[] result = new byte[temp.Length * sizeof(int)];
Buffer.BlockCopy(temp, 0, result, 0, result.Length);
return result;
}
else if (m_value is uint[])
{
uint[] temp = m_value as uint[];
byte[] result = new byte[temp.Length * sizeof(uint)];
Buffer.BlockCopy(temp, 0, result, 0, result.Length);
return result;
}
else if (m_value is float[])
{
float[] temp = m_value as float[];
byte[] result = new byte[temp.Length * sizeof(float)];
Buffer.BlockCopy(temp, 0, result, 0, result.Length);
return result;
}
else if (m_value is double[])
{
double[] temp = m_value as double[];
byte[] result = new byte[temp.Length * sizeof(double)];
Buffer.BlockCopy(temp, 0, result, 0, result.Length);
return result;
}
}
else if (m_value is string)
{
return Tiff.Latin1Encoding.GetBytes(m_value as string);
}
else if (m_value is int)
{
return BitConverter.GetBytes((int)m_value);
}
return null;
}