0

这是 XML:

<?xml version="1.0" encoding="utf-8" ?>
<SAPPHIRE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <TRANSACTION-CODE>NEW</TRANSACTION-CODE>
  <CUSTOMER-NUMBER>100398598</CUSTOMER-NUMBER>
  <CUSTOMER-NAME>CART DUDE</CUSTOMER-NAME>
  <ACCOUNT-TYPE />
  <PERSON FNAME="CART" LNAME="DUDE" RESPONSIBLITY="CART DUDE" />
  <SOURCE>cplestore</SOURCE>
  <TRAN-REFERENCE>13374470</TRAN-REFERENCE>
  <ORDER>
    <ORDER-NUMBER NUMBER="00241662693" REFERENCE="13374470">
      <PRODUCT-CODE>DLP99022L</PRODUCT-CODE>
      <START-DATE>2011-4-6 00:00:00.0</START-DATE>
      <EXPIRE-DATE>2011-4-11 00:00:00.0</EXPIRE-DATE>
      <MAX-USERS>1</MAX-USERS>
      <ALLOWED-USERS>1</ALLOWED-USERS>
      <PERSON FNAME="CART" LNAME="DUDE" RESPONSIBLITY="CART DUDE" />
    </ORDER-NUMBER>
  </ORDER>
</SAPPHIRE>

我有 DTO:

public class Sapphire : IXmlSerializable
{
public XmlSchema GetSchema()
        {
            return null;
        }

        public void ReadXml(XmlReader reader)
        {
            throw new NotImplementedException();
        }

        public void WriteXml(XmlWriter writer)
        {
            throw new NotImplementedException();
        }
}
4

1 回答 1

0

实现IXmlSerializable相当棘手并且可能容易出错(例如,您需要确保您的代码正确处理诸如注释之类的事情)。对于此示例,您应该能够使用 XSD.exe 生成一个适当的类,该类使用属性来控制 xml 序列化。

您应该使用XSD.exe为您的示例 xml 片段生成架构(您可能需要对其进行调整 - 如果您有现有的 XSD 架构则跳过此步骤),然后再次使用它来生成用于序列化的类。

如果您真的想实现 IXmlSerializable,请尝试以下资源:

于 2011-04-08T04:56:33.120 回答