.NetCore如何將特性和依賴注入有效結合


場景        

都知道在不改變原有代碼結構的情況下,想要對原有接口進行驗證或者審計等功能,基本上無非是裝飾器、代理、AOP這三種方式了,裝飾器和代理在我們的現有框架上並不是很友好,所以我推薦使用AOP。

使用特性來實現基於AOP的審計需求

        傳統特性很簡單,無非是方法或者類前加上特性即可。

        但是在具有業務的情況下,有很多功能的提供類需要進行實例化才可以使用,在Core環境下,大部分都可以通過依賴注入來進行獲取對象,如果能有效結合起來,那對於開發而言是相當便捷的。

        .NetCore的依賴注入可以說是無處不在的,特性也可以進行依賴注入,然后在需要用到的地方進行使用,具體用法如下

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

//注入日志記錄類
services.AddScoped<LogAttribute>();

然后使用的時候就和普通用法有所區別了

這是普通用法

[LogAttribute]
public void Method(){}

如果特性的構造函數需要進行依賴注入才能獲取對象的話,用法如下

[Microsoft.AspNetCore.Mvc.ServiceFilter(typeof(LogAttribute))]
public void Method(){}

果然微軟想的周全。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM