2009-06-24 30 views

答えて

57

オブジェクトのシリアル化方法を指定します。デフォルトはIsReference=falseです。

設定すると、IsReference = trueは、互いを参照できるオブジェクトのツリーのシリアル化を可能にします。

IsReference=falseが生じるであろう:それぞれが(もEmployeeある)Managerのプロパティ、各EmployeeためManagerへの参照を有するEmployeesのリストを有するように、各Employeeノード内Managerを埋め込むのではなく、保持することができます。

IsReference=trueが生じるであろうと
<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> 

<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は、詳細とInteroperable Object Referencesを提供します。

+1

+1 "エラー297 'System.Runtime.Serialization.DataContractAttributeは' 'IsReference' の定義が含まれていません"。それはたくさんの助けになりました。 – Darcy

2

IsReferenceは、.NET Framework 3.5には存在しません。そのFrameworkバージョンで使用するとエラーが発生する可能性があります。これは、4.5,4,5.5 SP1、およびSilverlightのみに存在します。

webblogリンクの

関連する問題