加载XML文件时定义正确的路径

时间:2016-09-29 11:40:21

标签: c# xml

我正在尝试检索一个名为" DeafultInstDir"在XML文件中:

的App.config

<appSettings>
   <add key="DefaultInstDir" value ="RITTNER">
<appSettings>

XML文件的路径是:

  

C:\ Users \ dora \ Documents \ Visual Studio \ 2012 \ Projects \ NSISSetupGenerator \ NSISSetupGenerator

问题:C#正在寻找:

  

C:\ Users \ dora \ Documents \ Visual Studio 2012 \ Projects \ NSISSetupGenerator \ NSISSetupGenerator \ bin \ Debug

我试图加载它:
Setup_Generator.cs

public static string DefaultInstDir(){
   XDocument xdoc = XDocument.Load(App.config);
   string path = xdoc.Descendants("DefaultInstDir").First.Value();
   return path; //it should return string "RITTNER"
}

我尝试过定义这样的绝对路径:

XDocument xdoc = XDocument.Load(C:\Users\dora\Documents\Visual Studio\2012\Projects\NSISSetupGenerator\NSISSetupGenerator\App.config);

我尝试使用此功能生成路径

HttpContext.Current.Server.MapPath()

它找不到该文件。 path变量每次都返回null。如何告诉我的机器在哪条路径上查找XML文件?

2 个答案:

答案 0 :(得分:1)

添加对System.Configuration的引用

然后:

using System.Configuration;

string path= ConfigurationManager.AppSettings["DefaultInstDir"];

编辑:如果您想要更高级的解决方案,请查看定义节和元素类并将它们映射到.config文件。 https://msdn.microsoft.com/en-us/library/2tw134k3.aspx

答案 1 :(得分:0)

找到解决方案。以下代码......

var dt: Array = [];
var greatest = 0;
var i: int;
var j: int;
ball.addEventListener(Event.ENTER_FRAME, bg);
function bg(event: Event) {
    d = Math.sqrt(ball.x - ground.x) * (ball.x * ground.x) + (ball.y - ground.y) * (ball.y - ground.y);

    for (i = 1; i < 1002; i++) {
        dt[i] = d;
    }
    for (j = 1; j < 1002; j++) {
        if (dt[j] > dt[j + 1]) {
            greatest = dt[j];
        } else {
            greatest = dt[(j + 1)];
        }
    }
}

...因为我的XML元素而给我一个例外......

     using System.Configuration;
     string path= ConfigurationManager.AppSettings["DefaultInstDir"];

...在此XML元素之前定义:

    <appSettings>
    <add key="DefaultInstDir" value ="RITTNER">
    <appSettings>

configSections必须是App.config文件中的第一个元素。