Я могу настроить фильтр страниц бритвы ASP.NET Core при запуске, который просто отлично внедряет зависимости, используя <<TType>>()
вместо new Type()
:
services.AddMvc(options =>
{
options.Filters.Add<Filters.AdminPageFilter>();
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddHttpContextAccessor();
Это отлично работает, но хотелось бы применитьэто для каталога, выполняющего что-то вроде:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddFolderApplicationModelConvention(
"/Admin",
model => model.Filters.Add<Filters.AdminPageFilter>()
);
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
Компиляция жалуется:
Ошибка CS7036 Не указан аргумент, соответствующий необходимому формальному параметру 'configureSource' в 'ConfigurationExtensions.Добавить (IConfigurationBuilder, Action) 'Startup.cs 71 Active
Можно ли просто указать тип с помощью model.Filters.Add<Filters.AdminPageFilter>()
и не создавать новый экземпляр с помощью model.Filters.Add(new Filters.AdminPageFilter())
?