• 【转】.NetCore如何将特性和依赖注入有效结合


    场景        

    都知道在不改变原有代码结构的情况下,想要对原有接口进行验证或者审计等功能,基本上无非是装饰器、代理、AOP这三种方式了,装饰器和代理在现有框架上并不是很友好,所以推荐使用AOP。

    使用特性来实现基于AOP的审计需求

            传统特性很简单,无非是方法或者类前加上特性即可。

            但是在具有业务的情况下,有很多功能的提供类需要进行实例化才可以使用,在Core环境下,大部分都可以通过依赖注入来进行获取对象,如果能有效结合起来,那对于开发而言是相当便捷的。

            .NetCore的依赖注入可以说是无处不在的,特性也可以进行依赖注入,然后在需要用到的地方进行使用,具体用法如下

            首先在Startup文件中的ConfigureServices方法中进行特性的依赖注入

    //注入日志记录类
    services.AddScoped<LogAttribute>();

    然后使用的时候就和普通用法有所区别了

    这是普通用法

    [LogAttribute]
    public void Method(){}

    如果特性的构造函数需要进行依赖注入才能获取对象的话,用法如下

    [Microsoft.AspNetCore.Mvc.ServiceFilter(typeof(LogAttribute))]
      public void Method(){}
  • 相关阅读:
    leetcode 18 4Sum
    leetcode 71 Simplify Path
    leetcode 10 Regular Expression Matching
    leetcode 30 Substring with Concatenation of All Words
    leetcode 355 Design Twitte
    leetcode LRU Cache
    leetcode 3Sum
    leetcode Letter Combinations of a Phone Number
    leetcode Remove Nth Node From End of List
    leetcode Valid Parentheses
  • 原文地址:https://www.cnblogs.com/cyqdeshenluo/p/12175773.html
Copyright © 2020-2023  润新知