private static void XmlWriteUnifiedElement(
UnifiedElement elem, StringBuilder buffer, int depth) {
// write items of enumerable
var seq = elem as IEnumerable;
if (seq != null) {
foreach (var item in seq) {
ToXmlRecursively(item, buffer, depth + 1);
}
}
// write properties without indexer
var values = elem.GetType().GetProperties()
.Where(prop => !XmlIgnorePropertyNames.Contains(prop.Name))
.Where(prop => prop.GetIndexParameters().Length == 0)
.Select(prop => prop.GetValue(elem, null));
foreach (var value in values) {
ToXmlRecursively(value, buffer, depth + 1);
}
}