2013-03-10 64 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文件。使用這種方法,模板在編譯時是固定的。所以你將無法在運行時定義它,例如通過從文件中讀取它。