2017-06-29 8 views
-1
string xmlstr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" 
       + "<SampleModel>" 
       + "<FIELD name=\"ID\">9693</FIELD>" 
       + "<FIELD name=\"PARAM_NAME\">93223335</FIELD>" 
       + "<FIELD name=\"DATA_TYPE\">1</FIELD>" 
       + "<FIELD name=\"CREATE_DATE\">2017/2/22 14:43:20</FIELD>" 
       + "<FIELD name=\"UPDATE_DATE\">2017/2/22 14:43:20</FIELD>"     
       + "</SampleModel>"; 

[Serializable] 
[XmlRootAttribute("SampleModel")] 
public class SampleModel 
{ 
    public string ID { get; set; } 

    public string PARAM_NAME { get; set; } 

    public string DATA_TYPE { get; set; } 

    public string CREATE_DATE { get; set; } 

    public string UPDATE_DATE { get; set; } 
} 

public static object Deserialize (Type, type, string, XML) 
{ 
    try 
    { 
     using (StringReader Sr = new StringReader(XML)) 
     { 
      XmlSerializer xmldes = new XmlSerializer (type); 
      return xmldes.Deserialize(SR); 
     } 
    } 
    catch (Exception e) 
    { 
     return null; 
    } 
} 

XML Deserializeオブジェクトを作成します。 このメソッドは失敗します。プロパティを定義するときにプロパティ[XmlElement( 'FIELD')を追加しますか? クラス構造の定義方法がわかりません。手伝って頂けますか?C#xml DeSerializerモデル

+0

してください** - > [編集] < - **あなたの質問をし、あなたが得るエラーメッセージが含まれます。コード内にさまざまな大文字小文字の誤りを修正しました。これが実際のコードを表していれば、それらを最初に修正する必要があります。 – Filburt

答えて

0

あなたのXMLとあなたのオブジェクトは実際には同じではありません。 FIELDという名前の繰り返し要素だけがあり、プロパティを作成した名前の要素はありません。

あなたはXMLをミラーオブジェクト構造が必要です

public class SampleModel 
{ 
    [XmlElement("FIELD")] 
    public List<Field> Fields { get; set; } 
} 

public class Field 
{ 
    [XmlAttribute("name")] 
    public string Name { get; set; } 

    [XmlText] 
    public string Value { get; set; } 
}