#c# #.net #spring.net
#c# #.net #spring.net
Вопрос:
Использование Spring.ЧИСТЫЙ IoC для внедрения объектов зависимостей в свойства. Приложение является подключаемым модулем Outlook.
Код:
IApplicationContext ctx = ContextRegistry.GetContext();
this.Property = (MyObject)ctx.GetObject("MyObject");
Конфигурация:
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects"/>
</context>
<objects xmlns="http://www.springframework.net">
<description></description>
<!--Business Logic Layer Binding Objects-->
<object name="MyObject"
type="Quadrant2.MSCRM.Recruit.OfficeAddins.Toolbar.BusinessLogic.Q2_Win_SearchClient_Logic, Quadrant2.MSCRM.Recruit.OfficeAddins.Toolbar.BusinessLogic">
<property name="SearchClientDAL" ref="DAL_SearchClient"/>
</object>
<!-- snip -->
Этот код работал нормально около 2 лет, а затем мы обновили несколько сборок в Outlook для запуска в Outlook 2010 и некоторые модификации ленты — ничего, что должно повлиять на Spring.Я думаю, NET.
Начал получать исключение «Имя контекста, переданное методу getContext, не может быть null или empty», вызванное при GetContext();
вызове. При ближайшем рассмотрении я отметил, что rootContextName
вызов is null — fair объясняет исключение, о котором я думал.
Также отмечено, что код будет нормально выполняться во время отладки, но завершится сбоем, как только он будет запущен вне debug. Проверенные DLL, зависимости и конфигурации находятся в нужном месте во время установки.
«Принудительно вводится» GetContext();
имя контекста «spring.root» в соответствии со rootContextName
значением сеанса отладки, и исключение исчезает, но IApplicationContext
возвращается значение null.
Есть идеи или очевидные проблемы здесь?