.NET - Дочерние процессы и файлы конфигурации - PullRequest
1 голос
/ 21 мая 2011

Я разрабатываю службу Windows, которая способна запускать произвольное количество процессов, каждый из которых обрабатывает данные в разных наборах баз данных; песочницы, отражающие наш сервис обработки данных в реальном времени. Информация о соединении с базой данных хранится в конфигурационном файле, расположение которого указано в app.config. Можно ли изменить данные app.config для каждого дочернего процесса?

У меня есть MasterService, который, например, запускает 2 новых процесса: DataProcessor1 и DataProcessor2. DataProcessor1 должен обращаться к базе данных foo_1, а DataProcessor2 должен обращаться к базе данных foo_2. Однако по умолчанию конфигурация базы данных установлена ​​на data_service, так что MasterService может получить доступ к тому, что ему нужно для функционирования, независимо от того, что делают его дочерние элементы.

Как я упоминал ранее, расположение конфигурации базы данных указывается в app.config. Есть ли способ для меня программно предоставить каждому процессу свой собственный app.config или изменить данные app.config для каждого отдельного процесса, чтобы я мог указать каждому процессу на его собственную уникальную конфигурацию базы данных?

Наши основные библиотеки сильно зависят от настроек конфигурации данных, которые у нас есть в настоящее время, поэтому об их изменении скорее не может быть и речи. Аналогичным образом, внедрение пользовательского объекта подключения к БД также невозможно в данный момент.

1 Ответ

0 голосов
/ 21 мая 2011

Должен ли дочерний процесс получать строку подключения из app.config? Если нет, вы можете просто передать строку подключения в качестве аргумента командной строки дочернему процессу.

Я полагаю, что вы можете использовать класс ConfigurationManager в System.Configuration для внесения изменений во время выполнения в app.config, но не уверен, что вы можете использовать его для изменения пути app.config к другому файлу.

...