private static XElement GetArrayElement(PropertyInfo info, Array input, bool includetype)
{
var name = XmlConvert.EncodeName(info.Name);
XElement rootElement = new XElement(name);
var arrayCount = input.GetLength(0);
for (int i = 0; i < arrayCount; i++)
{
var val = input.GetValue(i);
XElement childElement;
if (val.GetType().IsSimpleType())
{
childElement = new XElement(name + "Child", val);
}
else
{
childElement = ToXml(val, includetype);
}
rootElement.Add(childElement);
}
return rootElement;
}