簡體   English   中英

有沒有辦法在運行時將類文件加載到程序集?

[英]Is there a way to load a class file to assembly in runtime?

我正在嘗試做一些在運行時從用戶那里獲取cs文件的東西,使其對程序集有意義獲取其屬性,方法等。

有沒有辦法通過C#中的反射來做到這一點?

要動態編譯文件,你需要在這些行上做一些事情(其中sourceCode是一個包含要編譯的代碼的字符串):

CodeDomProvider codeProvider = new CSharpCodeProvider();
ICodeCompiler compiler = codeProvider.CreateCompiler();

// add compiler parameters
CompilerParameters compilerParams = new CompilerParameters();
compilerParams.CompilerOptions = "/target:library /optimize";
compilerParams.GenerateExecutable = false;
compilerParams.GenerateInMemory = true;         
compilerParams.IncludeDebugInformation = false;
compilerParams.ReferencedAssemblies.Add("mscorlib.dll");
compilerParams.ReferencedAssemblies.Add("System.dll");

// compile the code
CompilerResults results = compiler.CompileAssemblyFromSource(compilerParams, sourceCode);

您可以使用CSharpCodeProvider輕松地編譯它。 您可以從深度網站中C#下載我的代碼段編譯器Snippy的源代碼。 它使用CSharpCodeProvider,因此您可以將其用作示例代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM