C# T4模板,引用类文件,调用类方法
1.引用程序集
<#@ assembly name="$(TargetDir)\CustProjectName.dll" #>
2.引用命名空间
<#@ import namespace="CustProjectName.Util" #>
3.正常调用
3.1.T4Code
<#@ template debug="false" hostspecific="false" language="C#" #> <#@ assembly name="System.Core" #> <#@ assembly name="netstandard" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Text" #> <#@ import namespace="System.IO" #> <#@ import namespace="System.Collections.Generic" #> <#@ assembly name="$(TargetDir)\CustProjectName.dll" #> <#@ import namespace="CustProjectName.Extends" #> <#@ output extension=".cs" #> <# T4Extend.CreateFile(); #> namespace CustSpace { <# var name = "aaaa".Init(); #> // public class <#= name #> { } <# List<string> nameList = T4Extend.InitList(); foreach(var item in nameList){#> // public class <#= item #> { } <#} #> }
3.2.ClassCode
using System.Collections.Generic; using System.Linq; using System.IO; namespace CustProjectName.Extends { public static class T4Extend { public static string Init(this string saa) { return "Robot1"; } public static List<string> InitList() { return Enumerable.Range(1, 9).Select(x => $"CustName1_{x}").ToList(); } public static void CreateFile() { using (var fileStream = new FileStream(@"C:\Working\test.txt", FileMode.OpenOrCreate)) { using (var streamWriter = new StreamWriter(fileStream)) { streamWriter.WriteLine("Hello World!!!"); } } } } }
3.3.NetCore需要添加以下程序集才不会异常
<#@ assembly name="netstandard" #>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!