我已经构建了一个基于 HTTPListener 类的小型 HTTP 服务器。
我想知道的是,是否有任何脚本语言可以放入我的 HTML 文件中,可以在 C# 中本地执行?
类似于 PHP 与 HTML 代码混合时的工作方式。
李
您可以使用任何可用的 .NET 模板引擎,例如 WebForms、Razor...
您可以使用一种:T4。
如果您想在运行时定义模板,则需要提供对 Microsoft.VisualStudio.TextTemplating 的引用,您可以从文章Processing Text Templates by using a Custom Host (at msdn) 中了解如何实用地使用它。
来自文章:
要执行文本模板,请调用 Microsoft.VisualStudio.TextTemplating.Engine 的 ProcessTemplate 方法:
using Microsoft.VisualStudio.TextTemplating; ... Engine engine = new Engine(); string output = engine.ProcessTemplate(templateString, host);
在 host 参数中,您必须提供一个实现 ITextTemplatingEngineHost 的类。这由引擎回调。
通过这种方法,您可以让程序从文件中读取模板或从资源中加载模板。
文章演练:创建自定义文本模板主机(也在 msdn)将帮助您实现接口 ITextTemplatingEngineHost。
作为替代方案,如果您预先定义了固定模板,您可以创建 tt 文件并使用以下方法:
TestTemplate testTemplate = new TestTemplate();
string output = testTemplate.TransformText();
其中 TestTemplate 是 VisualStudio 从 TestTemplate.tt 文件生成的类。使用这种方法,模板在编译时是固定的。因此,您将无法在运行时定义它,例如通过从文件中读取它。