in src/main/csharp/Protocol/XmlPrimitiveMapMarshaler.cs [171:235]
private void MarshalPrimitive(XmlWriter writer, Object value)
{
if(value == null)
{
throw new NullReferenceException("PrimitiveMap values should not be Null");
}
else if(value is char)
{
writer.WriteElementString("char", value.ToString());
}
else if(value is bool)
{
writer.WriteElementString("boolean", value.ToString().ToLower());
}
else if(value is byte)
{
writer.WriteElementString("byte", ((Byte) value).ToString());
}
else if(value is short)
{
writer.WriteElementString("short", value.ToString());
}
else if(value is int)
{
writer.WriteElementString("int", value.ToString());
}
else if(value is long)
{
writer.WriteElementString("long", value.ToString());
}
else if(value is float)
{
writer.WriteElementString("float", value.ToString());
}
else if(value is double)
{
writer.WriteElementString("double", value.ToString());
}
else if(value is byte[])
{
writer.WriteElementString("byte-array", Convert.ToBase64String((byte[]) value));
}
else if(value is string)
{
writer.WriteElementString("string", (string) value);
}
else if(value is IDictionary)
{
Tracer.Debug("Can't Marshal a Dictionary");
throw new NotSupportedException("Can't marshal nested Maps in Stomp");
}
else if(value is IList)
{
Tracer.Debug("Can't Marshal a List");
throw new NotSupportedException("Can't marshal nested Maps in Stomp");
}
else
{
Console.WriteLine("Can't Marshal a something other than a Primitive Value.");
throw new Exception("Object is not a primitive: " + value);
}
}