C# 动态创建程序集 类
C# dynamic creation of Assembly out of classes
如何从多个 classes 中的代码动态创建 .dll?
创建示例:
var test = CodeDomProvider
.CreateProvider("CSharp")
.CompileAssemblyFromSource(parameters, "public class MyClass { ... }");
CompileAssemblyFromSource 需要一个字符串(class 的表示)。
我不想在生成的程序集中以字符串形式提供每个 class,所以我想在创建时传递它们。
示例:
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);
解决方案:
将 "ReferencedAssemblies" 添加到作为第一个参数传递给 CompileAssemblyFromSource 的参数中。
var parameters = new CompilerParameters
{
GenerateExecutable = false,
OutputAssembly = MY_ASSEMBLY,
ReferencedAssemblies = {"System.Core.dll", "System.ServiceModel.dll"}
};
如何从多个 classes 中的代码动态创建 .dll?
创建示例:
var test = CodeDomProvider
.CreateProvider("CSharp")
.CompileAssemblyFromSource(parameters, "public class MyClass { ... }");
CompileAssemblyFromSource 需要一个字符串(class 的表示)。
我不想在生成的程序集中以字符串形式提供每个 class,所以我想在创建时传递它们。
示例:
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);
解决方案:
将 "ReferencedAssemblies" 添加到作为第一个参数传递给 CompileAssemblyFromSource 的参数中。
var parameters = new CompilerParameters
{
GenerateExecutable = false,
OutputAssembly = MY_ASSEMBLY,
ReferencedAssemblies = {"System.Core.dll", "System.ServiceModel.dll"}
};