以下面的函數爲例:包括不斷變化的代碼爲活動計劃
void Changing(string var1, string var2, string var3)
{
}
我已經寫在.txt
文件中的代碼,我希望它是動態加載到該功能。每次調用函數時,代碼可能都會有所不同。我怎麼能這樣做?
- 代碼是在文本文件在磁盤上
- 代碼應該是動態加載不停止執行程序
- 代碼應該是從一開始加載代碼沒有區別,應該假裝好像它是永遠存在的。
- 要執行的文件的位置包含在
var1
中。
以下面的函數爲例:包括不斷變化的代碼爲活動計劃
void Changing(string var1, string var2, string var3)
{
}
我已經寫在.txt
文件中的代碼,我希望它是動態加載到該功能。每次調用函數時,代碼可能都會有所不同。我怎麼能這樣做?
var1
中。你不能100%地假裝它從一開始就在那裏;你將不得不解決它。
如果代碼是在外部的文本文件,你有多種選擇:
CSharpCodeProvider
編譯代碼在運行時;你需要添加額外的絨毛使其成爲一個明確定義的類(大概實現一個通用接口);然後使用反射來創建類型的實例; yeuch - 和提防你不能卸載等我想看看最後一個選項(IronPython的)第一......似乎是本作工作。
+1用於提示單聲道編譯器。 – 2009-10-06 05:15:49
對於您提供的很多選項而言+1。 – 2009-10-06 05:17:38
這種味道像做家庭作業,或精心製作的注射漏洞。 – JohnFx 2009-10-07 04:17:08