シリアライズされたデータと共にデータ型を格納するXmlSerializerを作成する方法はありますか。逆シリアル化すると、シリアライズされたオブジェクトの型が自動的に識別され、その型のオブジェクトがオブジェクトとして返されます。xml-serializationからオブジェクトタイプを識別する動的なXmlSerializer?
XDocument、XMLリテラルを含むアイデアも歓迎されます。
シリアライズされたデータと共にデータ型を格納するXmlSerializerを作成する方法はありますか。逆シリアル化すると、シリアライズされたオブジェクトの型が自動的に識別され、その型のオブジェクトがオブジェクトとして返されます。xml-serializationからオブジェクトタイプを識別する動的なXmlSerializer?
XDocument、XMLリテラルを含むアイデアも歓迎されます。
John Saunders氏のNetDataContractSerializerに関する十分な見解については、 NetDataContractSerializerは、XMLシリアライゼーションのイースターエッグのように、かなり不明瞭です。私は、必要な属性のソースコードを作成する方法と結果のXMLがどのように見えるかを示すVB.NET固有のブログ記事http://bejabbers2.blogspot.com/2010/03/making-case-for-netdatacontractserializ.htmlを持っています。 シリアル化されたクラスの外観は次のとおりです
<s:Body>
<DetermineCoordinates xmlns="http://tempuri.org/">
<LocationInfo z:Id="1" z:Type="SharedTypes.LocationInfo" z:Assembly="SharedTypes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" xmlns="http://schemas.datacontract.org/2004/07/SharedTypes" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<latitude>0</latitude>
<longitude>0</longitude>
<postalCode z:Id="2">90125</postalCode>
</LocationInfo>
</DetermineCoordinates>
</s:Body>
私はそれをイースターエッグと呼んでいません。これはデフォルトで.NET固有のバインディングのいくつかで使用されています。 –
@ John Saunders、好奇心の中で、どのバインディングを参照していますか? WCFバインディングを意味すると思います。私はそれがどこでも使われていたことを知らなかった。私は、DataContractSerializerがデフォルトであると思った。 NetDataContractSerializerはほとんどどこにも言及されていません(Juval LowyのProgramming WCF Services第3版の1ページ)。 –
「NetDataContractSerializer」を参照してください。 –