Я пользуюсь Виндзорским замком.Я получаю
System.InvalidOperationException: 'Область не была доступна.Вы забыли вызвать container.BeginScope ()? '* Ошибка 1004 *
, когда я регистрирую стандартную библиотеку .NET в файле конфигурации MVC5 и пытаюсь использовать стиль жизни Scoped.Почему я получаю эту ошибку?
У меня есть проект MVC5, который ссылается на множество проектов библиотеки классов .NET Framework.Все эти проекты библиотек классов имеют классы установщика Windsor для регистрации в порядке вызова на основе файла конфигурации MVC5.Библиотечный замок.У Windsor есть PerWebRequest
определение образа жизни, и оно использовалось во всех этих установщиках.
Теперь я представил стандартную библиотеку классов .NET и создал класс установщика, как и для всех предыдущих проектов, за исключением того, что я использую Scoped lifestyle вместоPerWebRequest
(я где-то читал, что Scoped является заменой PerWebRequest в .net Core ), я добавил регистрационный код в конфигурацию MVC5, как и для остальных библиотек, и теперь я получаю исключение:
System.InvalidOperationException: 'Область не была доступна.Вы забыли вызвать container.BeginScope ()? '
Я видел подобный вопрос здесь: Область не была доступна.Вы забыли вызвать container.BeginScope ()? , но он не получил ответа, и разница в том, что я пытаюсь использовать стандартную библиотеку .NET в MVC5 с .NET Framework.
Это мой класс установщика:
public void Install(Castle.Windsor.IWindsorContainer container, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store)
{
container.Register(Component.For(typeof(IAzureSBConfiguration)).ImplementedBy(typeof(ConfigFileConfiguration)).LifestyleScoped());
}
Это регистрация файла конфигурации:
<install assembly="AzureSBQueuing" />
Я ожидал, что все будет работать нормально, как это было, когда вводилась стандартная библиотека классов .NET.Почему происходит ошибка?