private string ParseObject(object inParam)
{
// open parameter ...
string xml = "<value>";
if (inParam.GetType() == typeof(string)) // parse type string ...
{
xml += "<string>" + HttpUtility.HtmlEncode((string)inParam) + "</string>";
}
else if (inParam.GetType() == typeof(int)) // parse type int32 ...
{
xml += "<int>" + (int)inParam + "</int>";
}
else if (inParam.GetType() == typeof(double)) // parse type double ...
{
xml += "<double>" + (double)inParam + "</double>";
}
else if (inParam.GetType() == typeof(bool)) // parse type bool ...
{
if ((bool)inParam)
xml += "<boolean>1</boolean>";
else
xml += "<boolean>0</boolean>";
}
else if (inParam.GetType() == typeof(ArrayList)) // parse type array ...
{
xml += "<array><data>";
foreach (object element in ((ArrayList)inParam))
{
xml += ParseObject(element);
}
xml += "</data></array>";
}
else if (inParam.GetType() == typeof(Hashtable)) // parse type struct ...
{
xml += "<struct>";
foreach (object key in ((Hashtable)inParam).Keys)
{
xml += "<member>";
xml += "<name>" + key.ToString() + "</name>";
xml += ParseObject(((Hashtable)inParam)[key]);
xml += "</member>";
}
xml += "</struct>";
}
else if (inParam.GetType() == typeof(byte[])) // parse type of byte[] into base64
{
xml += "<base64>";
xml += Convert.ToBase64String((byte[])inParam);
xml += "</base64>";
}
// close parameter ...
return xml + "</value>\n";
}