0

这在 intel-sense 中返回了正确的元素原因,nexp 读取如下脱机我正在尝试将具有脱机值的元素更改为就绪。

public void ChangeConnectionStatus(string SelectedFile)
        { 
      System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(@"C:\Users\Rick\Documents\Visual Studio 2010\Projects\Server\server.config\DC_Classes\");
            //Getting All file names from the directory info
            System.IO.FileInfo[] fileNames = dirInfo.GetFiles(SelectedFile + "*.xml*");
            //Foreach itterator
            foreach (System.IO.FileInfo fi in fileNames)
            {
                XElement main = XElement.Load(fi.FullName);

               IEnumerable<XElement> Nongroups = from nexp in main.XPathSelectElements("Network/Posted_Status")
                            where nexp.Element("Posted_Status").Value == "Offline"
                            select nexp;
            ////Handle the process here
            foreach (XElement nexp in Nongroups)
            {
               DialogResult Yes = MessageBox.Show("This Will Online This Group Are You Sure You Want To Do This","System Info",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
               if (Yes == DialogResult.Yes)
               {
                   nexp.SetValue("Ready");
               }
             }
          }

      }
4

2 回答 2

0

如果您不确定对象的类型,则只需使用var

foreach (var nexp in Nongroups)

并以这种方式分配值:

if (Yes == DialogResult.Yes)
{
    nexp.Element("Posted_Status").Value = "Ready";
}
于 2013-08-01T02:42:41.967 回答
0

我的猜测是您缺少名称空间,正如您在此 SO线程中看到的那样。所以我期待nexp在这一行被设置为空:

来自main.XPathSelectElements ("Network/Posted_Status") 中的 nexp

您也可以阅读此MSDN 线程

试试看,希望对你有帮助!

于 2013-08-01T02:55:23.437 回答