2009-06-24 10 views

risposta

57

Determina la modalità di serializzazione degli oggetti, per impostazione predefinita, IsReference=false.

L'impostazione IsReference = true consente la serializzazione di alberi di oggetti che possono fare riferimento l'un l'altro. Quindi, con un elenco di Employees che ogni hanno una proprietà per Manager (che è anche un Employee), un riferimento al Manager per ogni Employee può essere ritenuta piuttosto che incorporare il Manager all'interno di ogni Employee nodo:

IsReference=false produrrebbe:

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

Dove come IsReference=true produrrebbe:

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

frammenti presi da questo weblog che ha una spiegazione completa insieme ad esempi dell'XML generato con la proprietà applicata.

MSDN - IsReference Property fornisce i dettagli nonché Interoperable Object References.

+1

+1 per il collegamento webblog. Questo ha aiutato molto. – Darcy

2

Anche IsReference non esiste in .NET Framework 3.5. Quindi potresti ottenere errori quando lo usi con quella versione di Framework - esiste solo in 4.5, 4, 3.5 SP1 e Silverlight.

"Errore 297 'System.Runtime.Serialization.DataContractAttribute' non contiene una definizione per 'IsReference'"

Problemi correlati