目前,我有一些正在动态生成的代码。换句话说,该程序将动态创建一个C#.cs文件,其目的是将该C#文件包含在另一个项目中。挑战在于,我想生成一个.DLL文件而不是生成一个C#.cs文件,这样它就可以被任何一种.NET应用程序(不仅是C#)引用,因此更加有用。
3 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
一种不建议使用的方法(使用.NET 4.0作为前面提到的海报):
using System.CodeDom.Compiler;
using System.Reflection;
using System;
public class J
{
public static void Main()
{
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.OutputAssembly = "AutoGen.dll";
CompilerResults r = CodeDomProvider.CreateProvider("CSharp").CompileAssemblyFromSource(parameters, "public class B {public static int k=7;}");
//verify generation
Console.WriteLine(Assembly.LoadFrom("AutoGen.dll").GetType("B").GetField("k").GetValue(null));
}
}
- 3 回答
- 0 关注
- 573 浏览
添加回答
举报
0/150
提交
取消