[Asp.Net Core]FilterFactory扩展定制

Posted 厦门德仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Asp.Net Core]FilterFactory扩展定制相关的知识,希望对你有一定的参考价值。

为可以使用ServiceFilter/TypeFilter就可以支持依赖注入呢?----一定是IOC容器来完成;

1.自定义一个特性类,继承Attribute,实现接口 IFilterFactory;实现接口中的方法

    public class CustomFilterFactory : Attribute, IFilterFactory
    
      .....
    

2.通过构造函数传递需要实例化的特性的type类型

        public CustomFilterFactory(Type type) 
        
            _Type = type;
        
        private readonly Type _Type = null;

3.在实现接口中,通过Type类型获取到实例

    public class CustomFilterFactory : Attribute, IFilterFactory
    
        public CustomFilterFactory(Type type) 
        
            _Type = type;
        
        private readonly Type _Type = null;
        public bool IsReusable => true;

        public IFilterMetadata CreateInstance(IServiceProvider serviceProvider)
        
            object oInstance = serviceProvider.GetService(_Type); //创建实例 
            return (IFilterMetadata)oInstance;
        
    

4.标记在Action上面

        [CustomFilterFactory(typeof(CustomActionFilterAttribute))]
        public IActionResult Index()
        
            return View();
        

5.测试


以上是关于[Asp.Net Core]FilterFactory扩展定制的主要内容,如果未能解决你的问题,请参考以下文章

Asp.NET Core进阶 第四篇 Asp.Net Core Blazor框架

.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介

asp.net core 注入后仍然报错?

深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的

.Net Core 学习 - ASP.NET Core 概念学习

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门