CodeSmith中共享常用代码
CodeSmith是个很好的模板化的代码生成器,可以生成任何文本的代码。CodeSmith本身就支持在模板里写脚本,比如
<script runat="template">
public string SampleMethod()
{
return "abc";
}
</script>
但很多模板可能会有很多同样这种代码,就需要共享代码,以简洁模板。
-
自定义模板类,然后在模板里引用这个类。
文件test.cst.cs
using System.ComponentModel;
using CodeSmith.Engine;
public class UtilityCodeTemplate : CodeTemplate
{
public string SampleMethod()
{
return "Hello! My method output!";
}
}
模板test.cst,注意Src和Inherits的设置
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="test.cst.cs"
Inherits="UtilityCodeTemplate" Debug="True" Description="Template description here." %>
begin <%= SampleMethod() %> end
-
自己生成一个程序集,在模板中通过引用
打开Visual Studio, 添加一个类库项目。
using System;
using System.Collections.Generic;
using System.Text;
namespace CodeSmith
{
public class Utility
{
public static string SampleMethod()
{
return "Test OK!";
}
}
}
生成程序集CodeSmith.dll, copy到C:"Program Files"CodeSmith"v4.1"AddIns目录下(看CodeSmith安装目录),重启一下CodeSmith Studio
模板test.cst,引入程序集并添加命名空间
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Debug="True"%>
<%@ Assembly Name="CodeSmith" %>
<%@ Import Namespace="CodeSmith" %>
begin <%= Utility.SampleMethod() %> end
-
使用include共享
创建Test.cst.cs
<script runat="template">
public string SampleMethod()
{
return "Test OK!";
}
</script>
模板文件,使用include添加,include其实就是把文件引用进来
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Debug="True"%>
begin <%= SampleMethod() %> end
<!-- #include file="Test.cst.cs" -->
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现