【发布时间】:2018-12-04 07:34:19
【问题描述】:
我可以在启动时设置一个 ASP.NET Core razor 页面过滤器,它使用 <<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 没有给出与“ConfigurationExtensions.Add(IConfigurationBuilder, Action)” Startup.cs 71 Active 所需的形式参数“configureSource”相对应的参数
有没有办法只通过model.Filters.Add<Filters.AdminPageFilter>() 指定类型而不通过model.Filters.Add(new Filters.AdminPageFilter()) 创建新实例?
【问题讨论】:
标签: c# asp.net-core dependency-injection razor-pages