2011-04-08 112 views
0

這裏實現IXmlSerializable的是XML:幫助與此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(); 
     } 
} 

回答

0

實施IXmlSerializable是相當棘手的,可能容易出錯(例如,你需要做確保你的代碼正確地處理註釋等事情)。對於這個示例,您應該只能使用XSD.exe生成一個使用屬性來控制xml序列化的適當類。

您應該使用XSD.exe爲您的示例x​​ml片段(您需要進行調整 - 如果您擁有現有的XSD架構,請跳過此步驟)生成架構,然後再次使用它來生成一個用於序列化的類。

如果你真的想要實現IXmlSerializable的請嘗試以下資源: