BBGamelib.NSCollectionUtils.Compose C# (CSharp) Method

Compose() static private method

static private Compose ( object value, XmlWriter writer ) : void
value object
writer System.Xml.XmlWriter
return void
		static void Compose(object value, XmlWriter writer)
		{
			
			if (value is string)
			{
				writer.WriteElementString("string", value as string);
			}
			else if (value is int || value is long)
			{
				writer.WriteElementString("integer", ((int)value).ToString(System.Globalization.NumberFormatInfo.InvariantInfo));
			}
			else if (value is NSDictionary)
			{
				NSDictionary dic = value as NSDictionary;
				WriteDictionaryValues(dic, writer);
			}
			else if (value is NSArray)
			{
				ComposeArray((NSArray)value, writer);
			}
			else if (value is byte[])
			{
				writer.WriteElementString("data", Convert.ToBase64String((Byte[])value));
			}
			else if ( value is double)
			{
				writer.WriteElementString("real", ((double)value).ToString(System.Globalization.NumberFormatInfo.InvariantInfo));
			}
			else if (value is float)
			{
				writer.WriteElementString("real", ((float)value).ToString(System.Globalization.NumberFormatInfo.InvariantInfo));
			}
			else if (value is DateTime)
			{
				DateTime time = (DateTime)value;
				string theString = XmlConvert.ToString(time, XmlDateTimeSerializationMode.Utc);
				theString = theString.Substring(0, 19) + "Z";
				writer.WriteElementString("date", theString);//, "yyyy-MM-ddTHH:mm:ssZ"));
			}
			else if (value is bool)
			{
				writer.WriteElementString(value.ToString().ToLower(), "");
			}else if (value == null)
			{
			}
			else
			{
				throw new Exception(String.Format("Value type '{0}' is unhandled", value.GetType().ToString()));
			}
		}		
		static void WriteDictionaryValues(NSDictionary dictionary, XmlWriter writer)