ShootManiaXMLRPC.XmlRpc.GbxCall.ParseObject C# (CSharp) Method

ParseObject() private method

private ParseObject ( object inParam ) : string
inParam object
return string
        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";
        }