2010-11-08 16 views
2

在運行期間編譯cs文件是否可能,因此我可以像普通類一樣訪問它?運行期間編譯* .cs文件和訪問成員

在實踐中,我讀出一個文本文件並將其信息存儲在類結構中。之後,我需要在我的應用程序中訪問班級成員。

我做現在什麼:我編譯CS文件並創建使用這個例子 http://msdn.microsoft.com/en-us/library/system.codedom.compiler.compilerparameters.generateexecutable.aspx

一個DLL我把它改爲:

String exeName = String.Format(@"{0}\{1}.dll", 
       System.Environment.CurrentDirectory, 
       sourceFile.Name.Replace(".", "_")); 

cp.GenerateExecutable = false; 
cp.OutputAssembly = Name; 
cp.GenerateInMemory = true; 
cp.TreatWarningsAsErrors = false; 

那麼現在呢?

編輯: 這能否幫助我:

[DllImport("srec_struct_cs.dll", SetLastError = true)] 
+0

這裏你去哥們 – binaryguy 2010-11-09 17:45:22

回答

1

現在你可以加載使用AppDomain.Load重載之一組裝。

+0

到目前爲止,我現在使用domain.CreateInstanceFromAndUnwrap()來傳遞DLL路徑,但他期望作爲類型(2.參數)? – binaryguy 2010-11-08 19:35:11

+0

@wandermeise:你可以隨時查看文檔。它取決於您使用的是哪個重載,這兩個參數,'CreateInstanceAndUnwrap(string,string)'版本似乎採用程序集名稱和類型名稱。 – 2010-11-09 09:37:36

+0

什麼類型?我想訪問一個類,這是哪種類型?我沒有明白! – binaryguy 2010-11-09 17:44:08