Vb.net 从xml序列化中标识对象类型的动态XmlSerializer?

Vb.net 从xml序列化中标识对象类型的动态XmlSerializer?,vb.net,.net-4.0,xmlserializer,xmlwriter,ixmlserializable,Vb.net,.net 4.0,Xmlserializer,Xmlwriter,Ixmlserializable,有没有办法创建一个XmlSerializer,它与序列化数据一起存储数据类型,然后在反序列化时,它会自动标识序列化对象的类型,并创建一个作为对象返回的该类型的对象 任何包含XDocument、XML文本的想法都会受到欢迎。关于John Saunders对NetDataContractSerializer的良好观察。NetDataContractSerializer相当晦涩,几乎是XML序列化的复活节彩蛋。我有一篇特定于VB.NET的博客文章,展示了如何为必要的属性创建源代码,以及结果XML的外观

有没有办法创建一个XmlSerializer,它与序列化数据一起存储数据类型,然后在反序列化时,它会自动标识序列化对象的类型,并创建一个作为对象返回的该类型的对象


任何包含XDocument、XML文本的想法都会受到欢迎。

关于John Saunders对NetDataContractSerializer的良好观察。NetDataContractSerializer相当晦涩,几乎是XML序列化的复活节彩蛋。我有一篇特定于VB.NET的博客文章,展示了如何为必要的属性创建源代码,以及结果XML的外观。 下面是序列化类的外观

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

请看NetDataContractSerializer。我不会称之为复活节彩蛋。默认情况下,它在某些特定于.NET的绑定中使用。@John Saunders,出于好奇,您指的是哪些绑定?我想你指的是WCF绑定。我不知道它被用在任何地方。我认为DataContractSerializer是默认的。NetDataContractSerializer在Juval Lowy的编程WCF服务第三版中的任何一页都很少提及。