XDocument加载环境变量

时间:2014-05-07 10:40:42

标签: c# linq-to-xml

当我尝试加载一些XML文件时,使用下一个代码:

XDocument configuration = 
    XDocument.Load("%NAME_OF_THE_PATH%/Default_TestRunConfiguration.xml");

它没有接缝工作,它无法解析我指定的特定环境变量。当我将该变量粘贴到资源管理器中时,它可以工作。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

使用Environment.GetEnvironmentVariable,然后使用Path.Combine安全地合并路径和文件名。

var dir = Environment.GetEnvironmentVariable("someVariableWithYourPath");

XDocument configuration =
    XDocument.Load(Path.Combine(dir, "Default_TestRunConfiguration.xml"));

目前,您传递文字字符串"%NAME_OF_THE_PATH%/ Default_TestRunConfiguration.xml"对于该方法,它并不知道第一部分代表一个环境变量。

答案 1 :(得分:3)

请改为尝试:

string path = Environment.ExpandEnvironmentVariables("%NAME_OF_THE_PATH%/Default_TestRunConfiguration.xml");

XDocument configuration = XDocument.Load(path);

这将适用于多个环境变量,并避免您必须专门处理它们。 这意味着您可以使用与批处理文件中相同类型的字符串。