:Te[xplore]
Tab & amp; Исследуйте (делает вкладку перед генерацией окна браузера)
Он определяет способ сериализации объектов, по умолчанию IsReference = false
.
Настройка IsReference = true
разрешает сериализацию деревьев объектов которые могут ссылаться друг на друга. Итак, со списком Сотрудников
, каждый из которых имеет свойство для Менеджера
(который также является Сотрудником
), ссылка на Менеджера
для каждого Сотрудника
можно удерживать вместо встраивания Менеджера
в каждый узел Сотрудник
:
IsReference = false
даст:
<Employee>
<Manager i:nil=“true“ />
<Name>Kenny</Name>
</Employee>
<Employee>
<Manager>
<Manager i:nil=“true“ />
<Name>Kenny</Name>
</Manager>
<Name>Bob</Name>
</Employee>
<Employee>
<Manager>
<Manager i:nil=“true“ />
<Name>Kenny</Name>
</Manager>
<Name>Alice</Name>
</Employee>
Где поскольку IsReference = true
создаст:
<Employee z:Id=“i1“ xmlns:z=“http://schemas.microsoft.com/2003/10/Serialization/“>
<Manager i:nil=“true“ />
<Name>Kenny</Name>
</Employee>
<Employee z:Id=“i2“ xmlns:z=“http://schemas.microsoft.com/2003/10/Serialization/“>
<Manager z:Ref=“i1“ />
<Name>Bob</Name>
</Employee>
<Employee z:Id=“i3“ xmlns:z=“http://schemas.microsoft.com/2003/10/Serialization/“>
<Manager z:Ref=“i1“ />
<Name>Alice</Name>
</Employee>
Фрагменты, взятые из этого веб-журнала , в котором есть полное объяснение вместе с примерами сгенерированного XML с примененным свойством.
MSDN - Свойство IsReference предоставляет подробные сведения, а также ссылки на совместимые объекты .
Также IsReference
не существует в .NET Framework 3.5. Таким образом, вы можете получить ошибки при использовании его с этой версией Framework - он существует только в 4.5, 4, 3.5 SP1 и Silverlight.
«Ошибка 297« System.Runtime.Serialization.DataContractAttribute »не содержит определения для« IsReference »»