static string GetHexValue(object obj)
{
string retVal = string.Empty;
byte[] byteArray = null;
Type t = obj.GetType();
if (t.IsEnum)
{
t = t.GetEnumUnderlyingType();
}
if (t == typeof(int))
{
byteArray = BitConverter.GetBytes((int)obj);
}
if (t == typeof(uint))
{
byteArray = BitConverter.GetBytes((uint)obj);
}
if (t == typeof(short))
{
byteArray = BitConverter.GetBytes((short)obj);
}
if (t == typeof(ushort))
{
byteArray = BitConverter.GetBytes((ushort)obj);
}
if (t == typeof(byte))
{
byteArray = new byte[1] { (byte)obj };
}
if (t == typeof(bool))
{
byteArray = new byte[1] { Convert.ToByte(obj, CultureInfo.InvariantCulture) };
}
if (t == typeof(ArtemisString))
{
using (MemoryStream ms = ((ArtemisString)obj).GetRawData())
{
byteArray = new byte[ms.Length];
ms.Read(byteArray, 0, byteArray.Length);
}
}
if (t == typeof(string))
{
byteArray = System.Text.ASCIIEncoding.ASCII.GetBytes((string)obj);
}
if (t == typeof(float))
{
byteArray = BitConverter.GetBytes((float)obj);
}
if (byteArray != null)
{
List<string> elem = new List<string>();
for (int i = 0; i < byteArray.Length; i++)
{
elem.Add(byteArray[i].ToString("X", CultureInfo.InvariantCulture).PadLeft(2, '0'));
}
retVal = string.Join(" ", elem.ToArray());
}
return retVal;
}