Quel est le but de IsReference
propriété dans DataContract
? Comment la demande et la réponse varient-elles avec cette propriété appliquée?
Il détermine comment les objets sont sérialisés, par défaut, IsReference=false
.
Réglage IsReference = true
permet la sérialisation des arbres d'objets pouvant se référencer. Donc, avec une liste de Employees
que chacun a une propriété pour Manager
(qui est également un Employee
), une référence au Manager
pour chaque Employee
peut être tenu plutôt que d'intégrer le Manager
dans chaque Employee
noeud:
IsReference=false
produirait:
<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>
Tandis que IsReference=true
produirait:
<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>
Les extraits prélevés à partir de ceci Weblog qui a une explication complète avec des exemples de XML générés avec la propriété appliquée.
MSDN - Isreference Property fournit des détails aussi bien que Références d'objet interopérable .
Aussi IsReference
n'existe pas dans .NET Framework 3.5. Vous pouvez donc avoir des erreurs lorsque vous l'utilisez avec cette version-cadre - il n'existe que dans 4,5, 4, 3,5 SP1 et Silverlight.
"Erreur 297 ''" System.Runtime.Serialization.DatacontractAttribute "ne contient pas de définition pour 'isreference'"