0

構成はこんな感じで読み方がわからない、製品やプレビューを選べば価値が得られますか?

<configuration> 

  <environment name="product">
     <connectionString> connection string</connectionString>
     <logPath>C:\*****</logPath>
     <errorLogPath>C:\*****</errorLogPath>
     <ProcessesNumber>5</ProcessesNumber>
      <sendAtOnce>100</sendAtOnce>
     <restInterval>30000</restInterval>
     <stopTime>30000</stopTime>
 </environment>

 <environment name="preview">
    <connectionString> connctionstring </connectionString>
    <logPath>C:\*****</logPath>
    <errorLogPath>C:\*****</errorLogPath>
    <ProcessesNumber>5</ProcessesNumber>
    <sendAtOnce>100</sendAtOnce>
    <restInterval>30000</restInterval>
   <stopTime>30000</stopTime>
 </environment>

</configuration>

デバッグでこれを読み取るにはどうすればよいですか?

4

2 に答える 2

1

LINQ を使用すると非常に簡単です

これはあなたを助けるはずです

class Configuration
{
    public string connectionString { get; set; }
    public string logPath { get; set; }
    public string errorLogPath { get; set; }
    public int ProcessesNumber { get; set; }
    public int sendAtOnce { get; set; }
    public int restInterval { get; set; }
    public int stopTime { get; set; }
}

static void Main(string[] args)
{
    try
    {
        XDocument doc = XDocument.Load("config.xml");
        string conftype = "product";

        var configuration = (from config in doc.Elements("configuration").Elements("environment")
                             where config.Attribute("name").Value.ToString() == conftype
                             select new Configuration
                             {
                                 connectionString = config.Element("connectionString").Value.ToString(),
                                 logPath = config.Element("logPath").Value.ToString(),
                                 errorLogPath = config.Element("errorLogPath").Value.ToString(),
                                 ProcessesNumber = int.Parse(config.Element("ProcessesNumber").Value.ToString()),
                                 sendAtOnce = int.Parse(config.Element("sendAtOnce").Value.ToString()),
                                 restInterval = int.Parse(config.Element("restInterval").Value.ToString()),
                                 stopTime = int.Parse(config.Element("stopTime").Value.ToString()),
                             }).First();
    }
    catch (Exception e)
    {
        Console.WriteLine(e.ToString());
    }
}
于 2013-04-15T11:23:45.023 に答える
0

C# では、Linq to XML を使用することをお勧めします。これは標準の .net フレームワーク (3.5) にあり、XML をロードし、そのすべてのノードと属性を簡単に読み取るのに役立ちます。

于 2013-04-15T11:01:09.843 に答える