1

既存の xml コードがあり、これを c# を使用してクラスに変換したいですか? 私はすでにそれを試しましたが、私は混乱しました。手を貸していただければ幸いです。ありがとう

XmlDocument doc1 = new XmlDocument();

XmlElement root = doc1.CreateElement("SqlCommand");
doc1.AppendChild(root);

XmlElement tblElem = doc1.CreateElement("Table");
tblElem.SetAttribute("TableName", ddl2.SelectedItem.Text);
root.AppendChild(tblElem);

for (int i = 0; i < GridView1.Rows.Count; i++)
{
    XmlElement colElem = doc1.CreateElement("Columns");
    if (((CheckBox)GridView1.Rows[i].FindControl("chkCol")).Checked)
    {
        colElem.SetAttribute("ColumnName", GridView1.Rows[i].Cells[3].Text);
        tblElem.AppendChild(colElem);
    }
    if (((RadioButton)GridView1.Rows[i].FindControl("radkey")).Checked)
    {
        colElem.SetAttribute("PKey", ddl2.SelectedItem.Text + "." + GridView1.Rows[i].Cells[3].Text);
        tblElem.AppendChild(colElem);
    }
}
doc1.Save(Server.MapPath(@"XmlFile/") + "config.xml");
4

1 に答える 1

1

クラスは 1 つの責任のみを持つ必要があります。現在のコードでは、xml 処理と UI の更新 (GridView) が混在しています。

それからクラスを作成すること自体は、本当の意味での OOP アーキテクチャにはなりません。

コードをクラスにリファクタリングすることを考える前に、さまざまなレイヤー/責任を分離する必要があります。その場合、それは何のクラスになりますか?

例えば。(a)データを表すもの (xml に含まれ、後で GridView に表示されるもの)、(b)次の xml からそのデータを抽出するもの、(c) GridView にそのデータを入力するもの。

これだけで、コードがより柔軟になり、テストしやすくなり、明確になります。オブジェクト指向アプローチの利点です。そうするためだけにクラスを作成することは、要点を完全に見逃しています。

于 2013-09-19T08:34:17.290 に答える