C#动态创建程序集出类

时间:2018-04-06 09:04:04

标签: c# class dll .net-assembly

如何从几个类的代码中动态创建.dll?

创作-示例:

 var test = CodeDomProvider
   .CreateProvider("CSharp")
   .CompileAssemblyFromSource(parameters, "public class MyClass { ... }");

CompileAssemblyFromSource需要一个字符串(类的表示)。

我不想将生成的程序集中的每个类都作为字符串提供,所以我想在创建时传递它们。

示例:

  public class MyClass
  {
    [DataMember(Order = 1)]
    public bool Valid{ get; set; }

    [DataMember(Order = 1)]
    public string SomeText{ get; set; }
  }

是否有像

这样的东西
var test = CodeDomProvider
  .CreateProvider("CSharp")
  .CompileAssemblyFromSource(parameters, MyClass);

1 个答案:

答案 0 :(得分:0)

解决方案:

添加"参考组件"作为第一个参数传递给CompileAssemblyFromSource的参数。

var parameters = new CompilerParameters
      {
        GenerateExecutable = false,
        OutputAssembly = MY_ASSEMBLY,
        ReferencedAssemblies = {"System.Core.dll", "System.ServiceModel.dll"}
      };