Ответ 1
Определяет, как объекты сериализуются по умолчанию, IsReference=false
.
Настройка IsReference = true
позволяет сериализовать деревья объектов, которые могут ссылаться друг на друга. Итак, со списком Employees
, у каждого из которых есть свойство для Manager
(кто также является Employee
), ссылка на Manager
для каждого Employee
может храниться, а не встраивать Manager
внутри каждый Employee
node:
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>
Фрагменты, взятые из этого weblog, который имеет полное объяснение вместе с примерами сгенерированного XML с примененным свойством.
MSDN - IsReference Property содержит подробные сведения, а также Взаимодействующие ссылки на объекты.