У меня есть контроллер с асинхронным действием.Я хотел бы зарегистрировать ActionFiler (тот, который реализует IAutofacActionFilter, мой код основан на Web API 2, использующий модуль интеграции Autofac Web API) для этого конкретного «асинхронного» действия в этом контроллере.Ниже приведены фрагменты, которые я пробовал, и это не сработало.Но синхронные действия работают, как указано в руководящих документах Autofac.
Попробовал несколько способов задания асинхронного действия в конфигурации «Регистрация», но ничего не получалось.Пожалуйста, обратитесь к приведенным ниже фрагментам для получения проверенного кода.
builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);
builder.Register(componentContext => new RequestLatencyTrackerActionFilter())
.AsWebApiActionFilterFor<>((actionSelector) => Task.Run<IHttpActionResult>(() => actionSelector.GetMyActionAsync(default(string)))))
.InstancePerApiRequest();
Или,
builder.Register(componentContext => new RequestLatencyTrackerActionFilter())
.AsWebApiActionFilterFor<>((actionSelector) => actionSelector.GetMyActionAsync(default(string)).Wait()))
.InstancePerApiRequest();
Действует действие «Не асинхронно»,
builder.Register(componentContext => new RequestLatencyTrackerActionFilter())
.AsWebApiActionFilterFor<>((actionSelector) => actionSelector.GetMyNonAsyncAction(default(string))))
.InstancePerApiRequest();
Являются ли регистрации?для асинхронных действий, поддерживаемых в модулях интеграции Autofac Web API?