0

xmlから名前を読み取り、リストボックスに表示するBeginningというWindowsフォームのメソッドがあります。そのメソッドを、xml名の読み取りのみを処理する別のクラスに移動したいと思います。これが私が別のクラスに移動したい関数です

public void readNames()
{
    string path = "runners.xml"; //path
    XDocument xDoc = XDocument.Load(path);
    foreach (XElement element in xDoc.Descendants("Name"))
    {
        myListBox.Items.Add(element.Value);
    }

}

これを行う方法はありますか?また、Beginningフォームクラスからどのように呼び出すのですか?

4

2 に答える 2

1

このようなものは機能するはずです(テストされていません)

public static class MyReaderClass
{
  public static List<string> ReadNames(string path)
  {
    var items = new List<string>();

    XDocument xDoc = XDocument.Load(path);
    foreach (XElement element in xDoc.Descendants("Name"))
    {
      items.Add(element.Value);
    }

    return items;
  }
}

次に、フォームから呼び出します。

myListBox.Items.AddRange(MyReaderClass.ReadNames("runner.xml"));
于 2012-10-26T00:24:31.920 に答える
1
public class MyXMLNamesReader
{
    public static List<string> readNames(string path)
    {
        List<string> names = new List<string>();
        XDocument xDoc = XDocument.Load(path);
        foreach (XElement element in xDoc.Descendants("Name"))
        {
            names.Add(element.Value);

        }
        return names;
    }

}

使用法

List<string> names = MyXMLNamesReader.readNames("runners.xml");
foreach(string name in names)
{
   myListBox.Items.Add(name);
}
于 2012-10-26T00:27:07.640 に答える