2013-03-10 65 views
1

我已经构建了一个基于HTTPListener类的小型HTTP服务器。自定义服务器脚本

我想知道的是,是否有任何脚本语言,我可以把我的HTML文件,可以在C#中被本地执行?

类似于PHP与HTML代码混合时的工作方式。

回答

1

你可以使用任何对.NET可用的模板引擎,如Web窗体,剃须刀,...

+1

谢谢。我快速浏览了这些内容。但是,我不清楚我是否可以将它们包含在独立的.NET Winform应用程序中。所有的说明似乎都针对asp.net。我希望能找到一些简单的东西。也许从HTML文件中提取脚本并将其作为C#代码运行。有没有办法做这样的事情? – 2013-03-10 08:46:49

+3

使用HttpListener类和WebForm视图引擎构建Web服务器很简单。看看这里:http://www.codingvision.net/networking/c-http-server-with-asp-net/ – 2013-03-10 09:09:54

+0

谢谢达林。只是为了确保我不会错过任何东西;这个解决方案意味着在WinForm应用程序中工作,而不是ASP,对吧? – 2013-03-10 09:25:31

0

如果你想要简单的东西,我建议你看一看T4模板。您可以从here开始和here

1

有一个你可以使用:T4。

如果您希望在运行时定义模板,则需要参考Microsoft.VisualStudio.TextTemplating才能看到,您可以从文章Processing Text Templates by using a Custom Host(在msdn上)以实用方式学习如何使用它。

从文章:

要执行文本模板,你叫 Microsoft.VisualStudio.TextTemplating.Engine的ProcessTemplate方法:

using Microsoft.VisualStudio.TextTemplating; 
... 
Engine engine = new Engine(); 
string output = engine.ProcessTemplate(templateString, host); 

在主机参数,你必须提供一个实现了 ITextTemplatingEngineHost的类。这由引擎回调。

通过这种方法,您可以让您的程序从文件读取模板或从资源中加载模板。

文章Walkthrough: Creating a Custom Text Template Host(也在MSDN)将帮助你实现接口ITextTemplatingEngineHost。


作为替代方案,如果你将有固定的模板预先定义的,可以创建了TT文件,并使用下面的方法:

TestTemplate testTemplate = new TestTemplate(); 
string output = testTemplate.TransformText(); 

凡TestTemplate是由VisualStudio中生成的类从一个TestTemplate .tt文件。使用这种方法,模板在编译时是固定的。所以你将无法在运行时定义它,例如通过从文件中读取它。