Итак, я хочу выполнить профилирование для нескольких контроллеров, которые наследуются от System.Web.Http.ApiController
. В проекте, который выполняет профилирование, мы регистрируем их с
builder.RegisterApiControllers(typeof(Web.Modules.AutofacModule).Assembly)
.As(type => new Autofac.Core.KeyedService("api", type));
Позже я пытаюсь зарегистрировать декоратор для каждого с
builder.RegisterDecorator<ApiController>(original => Decorate(original, profiler),
fromKey: "api");
, где Decorate
вводит некоторый код профилирования через DelegatingHandler
и возвращает оригинал.
Я могу разрешить контроллеры просто отлично:
scope.ResolveKeyed<RegistrationController>("api");
но код профилирования никогда не вызывается и Decorate
.
Моей первой мыслью было, что, возможно, мне нужно зарегистрировать компоненты контроллера как ApiController
, но сброс .As<ApiController>()
чуть ниже первого фрагмента не удался.
Любая помощь будет супер. Это, вероятно, сводится к тому, что у меня нет Autofac-fu.