Получить переменные среды другого сервиса - PullRequest
0 голосов
/ 10 июля 2020

Я использую Service Fabri c. Из одной выделенной службы я хотел бы получить переменные среды других служб. Есть ли способ сделать это ? (Сканировать запущенные службы / l oop / получить переменные среды / проверить, установлена ​​ли указанная переменная).

Я уже нашел способ чтения блока среды процесса ( здесь ), но если есть Service Fabri c функции, может быть и лучше.

1 Ответ

1 голос
/ 10 июля 2020

Вы можете получить переменные среды из манифеста службы, но их можно переопределить в манифесте приложения. При этом не учитываются переменные среды, которые служба создает во время выполнения.

<code></code>var client = new FabricClient();
var serviceManifest = await client.ServiceManager.GetServiceManifestAsync("Application1Type", "1.0.0",
    "Service1Pkg");

var environmentVariables = XDocument.Parse(serviceManifest)
    .Descendants()
    .Where(x => x.Name == XName.Get("EnvironmentVariable", "http://schemas.microsoft.com/2011/01/fabric"))
    .Select( x => new
    {
        Name = x.FirstAttribute.Value,
        Value = x.LastAttribute.Value
    })
    .ToList();
...