Какой подход лучше структурировать конфигурацию в app.config? - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть несколько устройств и некоторые модули в моем приложении, которые используют устройства для своей работы.

Существует два подхода к структуре конфигурации:

Подход 1:

<device1>
   <configurationForModule1 />
   <configurationForModule2 />
</device1> 

<device2>
   <configurationForModule1 />
   <configurationForModule2 />
</device2>

Тогда использование выглядит следующим образом:

public class Module1 {
    private readonly _device1;

    public Module1(Device1 device1) {
        _device1 = device1;
        // configuration for this module in _device1.Configuration.Module1
    }
}

Подход 2:

<configurationForModule1>
    <device1 />
    <device2 />
</configurationForModule1>

<configurationForModule2>
    <device1 />
    <device2 />
</configurationForModule2>

Затем использование выглядит следующим образомпример:

public class Module1 {
    private readonly _device1;

    public Module1(Module1Configuration configuration, Device1 device1) {
        _device1 = device1;
        // configuration for this module in configuration.Device1
    }
}

Кроме того:

Модули могут решать такие проблемы, как:

  • Сбор диагностических данных со всех устройств
  • Расчет на основеданные с разных устройств
  • Просмотр обработки событий и выполнение команд устройств

Как структурировать конфигурацию?

1 Ответ

0 голосов
/ 26 апреля 2018

Из вашего объяснения похоже, что основными объектами вашего проекта являются модули, а назначение устройств - позволить модулям выполнять свою работу.Если это так, то подход 2 представляется наиболее логичным.

Кроме того, второй подход позволяет легко предоставлять конфигурацию модуля, которая не имеет прямого отношения к устройствам (например, соединения с базой данных, расположение ресурсов).или регистрация);при подходе 1 вам придется дублировать эту информацию для каждого устройства.

...