Предложен первоначальный вариант нового интерфейса обращения к конфигурации в Ini файле #253
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Пока интерфейс имеет только базовую, но рабочую реализацию.
У меня нет 100% уверенности в правильность этого решения. Вообще в идеале хотелось бы перейти на конфигурации от MS IConfiguration, которая во всю используется в net. Core и доступна из нугет пакетов во фреймворке. НО она работает только на чтение. То есть изменять значения там нельзя. А при нашем использовании это очень часто надо. Но при этом в новой конфигурации все таки хочется попробовать реализовать интерфейс асбтрагированный от конкретного места хранения (ini file) и отвязанный от nini. В текущем интерфейсе IMachineConfig работа происходит напрямую с Nini. Это возможно вызовет проблемы при переводе библиотек на Core, так как по-моему в Nini не развивается совсем. Есть какой то пакет Nini в названии для нет стандарта, но на него еще надо смотреть. В идеале уйти на более универсальную конфигурацию. А место хранения ее настраивать в проекте. С другой стороны Nini передоставляет расширеный функционал по доступу к данных. Хотя не помню чтобы мы его часто использовали. В общем хочется либо услышать аргументы что это не надо и в перспективе не унифицирует доступ к различным параметрам конфигурации для модулей. Либо предложения по доработке. Например, я изначально планировал делать клон IConfiguration, но потом увидел что доступ к параметрам там проиходит через свойство Item, мне не удалось добавить индексатор на свойство Item, а делать отдельный класс аля колеекция, для реализации доступа через индексатор, тоже показалось, странных. Но может быть вы проголосуете именно за более приближенный к IConfiguration вариант. Тогда по идеи если где то массово будет использоваться оригинальный IConfiguration классы реализующие наш интерфейс смогут реализовывать и его на чтение. Давайте подумаем, вместе.