2011-07-13 10 views
1

私はクラスオブジェクトの逐次化を研究して準備しています。これまでOracle用の.NETシリアル化.insertxml

[XmlRoot("ROWSET")] 
    public class Person 
    { 

    [XmlElement("FIRST_NAME")] 
    public string first_name { get; set; } 

    [XmlElement("MIDDLE_NAME")] 
    public string middle_name { get; set; } 

    [XmlElement("LAST_NAME")] 
    public string last_name { get; set; } 

} 

シンプル:私のコードの目的は、以下のクラスのオブジェクトに格納されたWCFにJSON文字列を渡すことです。次に、オブジェクトをXMLにシリアル化し、OracleにCLOBとして渡されるXML文字列を送信するための準備としてヘッダー情報を取り除き、テーブルに格納するコードを用意しました。結果は次のようになります。

<ROWSET> 
    <FIRST_NAME>John</FIRST_NAME> 
    <MIDDLE_NAME>James</MIDDLE_NAME> 
    <LAST_NAME>Smith</LAST_NAME> 
</ROWSET> 

これで、Oracleに送信してテーブルに挿入する準備が整いました。問題は、私は、Oracle XMLフォーマットとして、それを送信する必要がある、である - Oracleの正規のフォーマットとして知られている - どのようでなければなりません:私は、列の間に挿入したいポイントにシリアライズを理解しようとしている

<ROWSET> 
    **<ROW>** 
    <FIRST_NAME>John</FIRST_NAME> 
    <MIDDLE_NAME>James</MIDDLE_NAME> 
    <LAST_NAME>Smith</LAST_NAME> 
    **</ROW>** 
</ROWSET>" 

データ。誰かに何か似たものがありますか?

おかげで、 グレン

答えて

1

私はそれに応じてDTOを形になります。

[XmlRoot("ROWSET")] 
public class PersonRowSet 
{ 
    [XmlElement("ROW")] 
    public Person Item {get;set;} 
    // ^^^ could perhaps be public List<Person> Items {get;set;} 
} 
public class Person 
{ 
    [XmlElement("FIRST_NAME")] 
    public string first_name { get; set; } 

    [XmlElement("MIDDLE_NAME")] 
    public string middle_name { get; set; } 

    [XmlElement("LAST_NAME")] 
    public string last_name { get; set; } 
} 

また、あなたは、ヘッダージャンクを「取り除く」する必要はありませんのでご注意 - あなたはそれを正しくライターを設定した場合最初に追加されません:

using (var sw = new StringWriter()) 
{ 
    using (var xw = XmlWriter.Create(sw, new XmlWriterSettings { 
     OmitXmlDeclaration = true })) 
    { 
     var obj = new PersonRowSet 
     { 
      Item = new Person 
      { 
       first_name = "John", 
       last_name = "Smith", 
       middle_name = "James" 
      } 
     }; 
     XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); 
     ns.Add("", ""); 
     var ser = new XmlSerializer(typeof(PersonRowSet)); 
     ser.Serialize(xw, obj, ns); 

    } 
    string xml = sw.ToString(); 
} 
+0

信じられないほどのもの - 私が欲しかったのと同じように機能しています。最後の1つの質問 - 私はその人物をオブジェクトとして渡しました:public string SavePersons(Person peeps) - アイテムに覗き見を割り当てる必要がありますか? – dawriter

+0

@dawriter新しいPersonRowSet {Item = peeps} –

関連する問題