Если у меня есть класс с рекурсивной структурой данных, такой как
public class Test
{
public string Name { get; set; }
public Test Recursion { get; set; }
}
и сериализовать его
var objectToSave= new Test{Name="Parent"};
objectToSave.Recursion = test; // this is an endless recursion
DataContractSerializer ds = new DataContractSerializer(objectToSave.GetType());
XmlWriterSettings settings = new XmlWriterSettings() { Indent = true };
using (XmlWriter w = XmlWriter.Create("result.xml", settings))
ds.WriteObject(w, objectToSave);
я получаю
<?xml version="1.0" encoding="utf-8"?>
<MyNamespace.Test ...>
<Name>Parent</Name>
<Recursion>
<Name>Parent</Name>
<Recursion>
<Name>Parent</Name>
<Recursion>
<Name>Parent</Name>
<Recursion>
...... togehter 1586 lines
обновление:
Для ограничения вывода имеется параметр MaxItemsInObjectGraph.
Кто-нибудь знает, как найти хорошую ценность для этого?
Или есть ли способ сообщить сериализатору, как должна идти глубокая рекурсия, или получить более компактный XML без избыточности?