Как мне использовать AutofacWebTypesModule для разрешения HttpServerUtilityBase - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть следующие регистрации

    builder.RegisterModule(new AutofacWebTypesModule());
    builder.Register<MyType>(ctx =>
    {
        var server = ctx.Resolve<HttpServerUtilityBase>();
        ...
    });

Когда я пытаюсь разрешить MyType с помощью конструктора на контроллере, я получаю следующее исключение. Что я делаю не так?

Autofac.Core.DependencyResolutionException был не обработан кодом пользователя
Сообщение = Нет контекста, соответствующего выражение 'Значение (Autofac.Builder.RegistrationBuilder`3 + <> c__DisplayClass0 [System.Web.HttpServerUtilityBase, Autofac.Builder.SimpleActivatorData, Autofac.Builder.SingleRegistrationStyle]). LifetimeScopeTag.Equals (scope.Tag)' видно из области, в которой экземпляр был запрошен.

1 Ответ

1 голос
/ 19 февраля 2011

Yikes - все это сообщение об ошибке пошло не так:)

Скорее всего, проблема в том, что вы пытаетесь разрешить MyType непосредственно из контейнера (в отличие от DependencyResolver, иначе выВы берете зависимость от него из одноэлементного компонента. Компонент HttpServerUtilityBase может использоваться только в контексте веб-запроса.

Попытка разрешить его из Applicaiton_Start также приведет к ошибке в режиме интегрированного конвейера IIS7.

HTH! Ник

...