private static object ToByte(object value, BuiltInType sourceType)
{
// check for array conversions.
Array array = value as Array;
if (array != null)
{
throw new NotImplementedException("Arrays of Byte not supported. Use ByteString instead.");
}
// handle for supported conversions.
switch (sourceType)
{
case BuiltInType.Byte:
{
return (byte)value;
}
case BuiltInType.Boolean: return Convert.ToByte((bool)value);
case BuiltInType.SByte: return Convert.ToByte((sbyte)value);
case BuiltInType.Int16: return Convert.ToByte((short)value);
case BuiltInType.UInt16: return Convert.ToByte((ushort)value);
case BuiltInType.Int32: return Convert.ToByte((int)value);
case BuiltInType.UInt32: return Convert.ToByte((uint)value);
case BuiltInType.Int64: return Convert.ToByte((long)value);
case BuiltInType.UInt64: return Convert.ToByte((ulong)value);
case BuiltInType.Float: return Convert.ToByte((float)value);
case BuiltInType.Double: return Convert.ToByte((double)value);
case BuiltInType.String:
{
return XmlConvert.ToByte((string)value);
}
}
// conversion not supported.
return DBNull.Value;
}