前言

在ASP.NET Core中引入了DI,并且通過構(gòu)造函數(shù)注入?yún)?shù),控制器中會大量使用DI注入各種的配置參數(shù),如果配置注入的參數(shù)比較多,而且各個控制器需要的配置參數(shù)都基本一樣的話,那么不斷重復(fù)的復(fù)制黏貼代碼提供相應(yīng)的構(gòu)造函數(shù),效率低效也,因此使用T4模板生成控制器的構(gòu)造函數(shù) ,這也得益于C#對分部類(partial)的支持。

 

T4模板生成控制器構(gòu)造函數(shù)

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

圖中CtrlTemplate.tt為模板文件,CtrlNames.txt為需要使用T4生成代碼的控制器名稱文件,CtrlTemplate.cs為T4模板生成的文件。

CtrlNames.txt文件內(nèi)容:

Values
Account

CtrlTemplate.tt代碼:

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

 1 <#@ template language="C#" debug="false" hostspecific="true"#> 2 <#@ assembly name="System.Core" #> 3 <#@ import namespace="System.Linq" #> 4 <#@ import namespace="System.Text" #> 5 <#@ import namespace="System.Collections.Generic" #> 6 <#@ output extension=".cs" #> 7 using ApiCoreTest; 8 using EFDbContext; 9 using Microsoft.AspNetCore.Mvc;10 using Microsoft.Extensions.Logging;11 using Microsoft.Extensions.Options;12 13 namespace ApiCoreTest.Controllers14 {15 <#16     //獲取項目的根目錄17   &
        
		

網(wǎng)友評論