2009-06-24 3 views

Antwort

57

Er bestimmt, wie Objekte serialisiert werden, standardmäßig IsReference=false.

Einstellung IsReference = true ermöglicht die Serialisierung von Bäumen von Objekten, die sich gegenseitig referenzieren können. Also mit einer Liste von Employees, die jeweils eine Eigenschaft für Manager haben (der auch eine Employee), einen Verweis auf die Manager für jeden Employee kann eher statt als die Manager innerhalb jeden Employee Knoten Einbetten:

IsReference=false produzieren würde:

<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> 

Wo, wie IsReference=true produzieren würde:

<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> 

Snippets aus dieser weblog, die eine vollständige Erklärung zusammen mit Beispielen der generierten XML mit der Eigenschaft angewendet hat.

MSDN - IsReference Property bietet Details sowie Interoperable Object References.

+1

+1 für den Webblog Link. Das hat sehr geholfen. – Darcy

2

Auch IsReference ist in .NET Framework 3.5 nicht vorhanden. Sie könnten also Fehler bekommen, wenn Sie es mit dieser Framework-Version verwenden - es existiert nur in 4.5, 4, 3.5 SP1 und Silverlight.

"Fehler 297 'System.Runtime.Serialization.DataContractAttribute' enthält keine Definition für 'IsReference'"

Verwandte Themen