/ / XDocument load with environment variables - c #, linq para xml

Carregamento de XDocument com variáveis ​​de ambiente - c #, linq-to-xml

Quando tento carregar algum arquivo XML, com o próximo código:

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

Ele não parece funcionar, não é possível analisar a variável de ambiente específica que eu especifiquei. Quando colo essa variável no explorer, ela funciona. Como posso fazer isso funcionar?

Respostas:

3 para resposta № 1

Tente isso:

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

XDocument configuration = XDocument.Load(path);

Isso funcionará com várias variáveis ​​de ambiente e evita que você tenha que lidar com elas especialmente. Isso significa que você pode usar o mesmo tipo de seqüência de caracteres que você faria em um arquivo em lotes.


3 para resposta № 2

Usar Environment.GetEnvironmentVariable, então Path.Combine para combinar com segurança o caminho e o nome do arquivo.

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

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

Atualmente, você passa a string literal "% NAME_OF_THE_PATH% / Default_TestRunConfiguration.xml" para o método e não sabe que a primeira parte representa uma variável de ambiente.