我使用的是作为"saml断言“返回给我的收据格式。这是一种已知且定义良好的格式,但在我当前的平台上,我无法访问可以将xml反序列化为原始类的库。
我已经决定可能需要使用自己的类,但是考虑到xml的格式,我真的不知道C#类是什么样子,也不知道将其反序列化所需的定义和技巧。
我们的目标是从收据中创建一个我可以检查的C#对象列表。我希望在Name节点和id中保留格式的值。此外,使这一点具有挑战性的部分原因是语句由主题和属性元素组成。我想问这个列表的一个问题是,这个列表是否包含一个断言,该断言的属性节点"Gamma“的值为999。
格式如下:
<Assertion>
<Statement>
<Subject>
<Name Format="http://name.com/123/45/ProductName" Id="123">123456</Name>
</Subject>
<Attribute Name="Alpha">
<Value>111</Value>
</Attribute>
<Attribute Name="Gamma">
<Value>22</Value>
</Attribute>
...
<Attribute Name="Delta">
<Value>3</Value>
</Attribute>
</Statement>
</Assertion>发布于 2011-09-15 08:08:28
您可以使用XML Schema Definition Tool (Xsd.exe)来启动您的类结构。
这里有一篇由Yogesh Joshi撰写的很棒的博客文章,介绍了整个过程:http://blogs.msdn.com/b/yojoshi/archive/2011/05/14/xml-serialization-and-deserialization-entity-classes-with-xsd-exe.aspx
发布于 2011-09-15 08:22:48
正如Kon在评论中所说,属性节点应该包装在容器元素中。我还没有找到任何好的方法来反序列化包含其他元素(或属性)的列表。您可能会被迫让您的类实现IXmlSerializable并编写更多内容。
https://stackoverflow.com/questions/7424435
复制相似问题