.NET IoC Framework со спортивными внешними настройками?параметры командной строки?XML слияние? - PullRequest
1 голос
/ 16 февраля 2012

Вот моя проблема: у меня есть компьютерная программа (для моделирования транспортного средства) с множеством настраиваемых параметров (порядка 100). У компании традиционно была своя собственная концепция IoC, которая загружает несколько файлов XML, определяющих сервисы и параметры. Однако в последнее время они хотят запустить программу из другой программы (под названием MC), которая генерирует подмножество параметров, специфичных для каждого экземпляра.

Я использовал autofac и ninject2 для других проектов, но на данный момент я не вижу, что мне в них нужно. Мне нравится поддержка XML в AutoFAC. Однако я не хочу, чтобы программа MC знала обо всех услугах моей детской программы. И я не уверен, что слияния XML там достаточно для моих нужд.

В качестве одного из решений я рассмотрел контейнер IoC, который легко позволил бы мне заполнять параметры и свойства служб из параметров командной строки. Я предполагаю, что это будет установлено в коде как часть регистрации служб в контейнере. Контейнер должен иметь простой способ распечатывать и проверять параметры командной строки. (Мои параметры - это, как правило, действительные числа и IP-адреса.) Кто-нибудь видел что-нибудь подобное в дикой природе?

Я также размышлял над чем-то похожим для передачи параметров в XML. По сути, в рамках настройки IoC вы должны указать путь XML, где этот параметр может быть получен. Затем вы должны передать XML / имена файлов в IoC, чтобы заполнить их. Может быть, есть какой-то другой формат параметров лучше, чем XML? Было бы полезно, если бы IoC мог выдать схему настроек, которая позволила бы мне проверить файлы настроек и использовать ее как стандарт для других программ, которые хотят настроить мою. Мысли?

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Замок Виндзор имел понятие IWindsorInstaller - http://stw.castleproject.org/Windsor.Installers.ashx,, который является классом для установки контейнера.

Вы можете реализовать его, однако, имеет смысл для вашего проекта - xml, командную строку, что угодно, если только в результате он заполняет контейнер.

Я думаю, вы могли бы эффективно использовать его в сценарии, который вы описали

0 голосов
/ 16 февраля 2012

Это может быть спорным, но вот что я вижу

У меня есть компьютерная программа ... с множеством настраиваемых параметров

Вам не нужен контейнер IoC для хранения этого. Используйте хранилище настроек: app.config, внешний XML, ресурсы и т. Д. IoC для внедрения зависимостей. Есть ли у вас какие-либо интерфейсы там? У вас есть несколько типов, которые реализуют один и тот же интерфейс? Представьте, как вы передадите параметры 100 с в командную строку, это будет непросто.

Возможно, вы можете просмотреть текущую систему с XML и посмотреть, в чем проблема с ней. Может быть, вы можете использовать другое постоянное хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...