in shims/amqpnetlite/src/amqp_types_test/Sender/Sender.cs [114:186]
public static string QpiditTypeOf(object obj)
{
string typename = obj.GetType().Name;
string qpiditType = null;
if (obj == null)
{
qpiditType = "null";
}
else
{
switch (typename)
{
case "Boolean":
qpiditType = "boolean";
break;
case "Byte":
qpiditType = "ubyte";
break;
case "UInt16":
qpiditType = "ushort";
break;
case "UInt32":
qpiditType = "uint";
break;
case "UInt64":
qpiditType = "ulong";
break;
case "SByte":
qpiditType = "byte";
break;
case "Int16":
qpiditType = "short";
break;
case "Int32":
qpiditType = "int";
break;
case "Int64":
qpiditType = "long";
break;
case "Single":
qpiditType = "float";
break;
case "Double":
qpiditType = "double";
break;
case "DateTime":
qpiditType = "timestamp";
break;
case "Guid":
qpiditType = "uuid";
break;
case "Byte[]":
qpiditType = "binary";
break;
case "String":
qpiditType = "string";
break;
case "Symbol":
qpiditType = "symbol";
break;
case "Array":
case "ArrayList":
case "Dictionary":
case "Dictionary`2":
throw new ApplicationException(String.Format(
"Unsupported complex AMQP type {0}", typename));
default:
throw new ApplicationException(String.Format(
"Can not translate system type {0} to a QpidIT type", typename));
}
}
return qpiditType;
}