Я настраиваю свои файлы конфигурации xml для своего веб-приложения asp.net с помощью инъекции зависимостей spring.net IOC. Я сослался на каждый из моих файлов конфигурации в web.config. Пример настройки в файле конфигурации spring.net (settings.xml):
<object id="obj1"
type="NS.Common.Cache.Class, NS.Common"
singleton="true"
init-method="Initialize"
destroy-method="Dispose">
<property name="Name" value="My Name" />
</object>
Все работает нормально.
Теперь я устанавливаю свое веб-приложение в нескольких средах, поэтому я создаю файл конфигурации spring.net для среды, например. dev, qa, prod.
Поэтому при установке приложения соответствующий файл Spring среды указывается в файле web.config. Это часть автоматического установщика.
В файле среды qa я хочу переопределить объект выше "obj1" на:
<object id="obj1"
type="NS.Common.Cache.Class2, NS.Common"
singleton="true"
init-method="Initialize"
destroy-method="Dispose">
<property name="Name" value="My New Name" />
</object>
Однако, поскольку это автоматизировано (добавление ссылки на файл среды), файл settings.xml не изменяется.
И теперь ссылка на 2 файла с определенным объектом с тем же идентификатором - это вызывает серьезные проблемы, поскольку будут возникать ошибки времени выполнения.
Есть ли способ, которым я могу включить в qa.xml и флаг или тому подобное, чтобы выделить это определение объекта, переопределяющее любые другие определенные объекты в любом другом XML-файле с тем же идентификатором объекта?