为了账号安全,请及时绑定邮箱和手机立即绑定

在运行时动态生成DLL程序集

在运行时动态生成DLL程序集

jeck猫 2019-09-24 09:52:16
目前,我有一些正在动态生成的代码。换句话说,该程序将动态创建一个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));

    }

}


查看完整回答
反对 回复 2019-09-24
?
潇湘沐

TA贡献1816条经验 获得超6个赞

现在,最好的选择是CSharpCodeProvider;4.0的计划包括“编译器即服务”,它将对此进行完全管理。


查看完整回答
反对 回复 2019-09-24
  • 3 回答
  • 0 关注
  • 548 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信