从类对象创建一个程序集,以便在以后保存和使用

时间:2014-03-25 13:53:10

标签: c# .net-assembly

我试图找出如何将类对象保存为程序集,以便我可以将该程序集保存到本地位置等以便在以后使用

创建测试类的示例,我想在实例化之后创建它的程序集。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            test newtest = new test("someInfo");
            //Create assembly from tt
            Assembly newAssem = NewAssembly.CreateAssembly(tt);
        }
    }


    public class test
    {
        public string val {get ;set;}
        public test(string v)
        {
            val = v;
        }
    }    
}

那么在这个方法中我想创建程序集

public static class NewAssembly
{
    public static Assembly CreateAssembly(test tt)
    {
        Assembly _proxyAssembly;
        CodeDomProvider _codeDomProvider = CodeDomProvider.CreateProvider("CS");
        CodeCompileUnit _codeCompileUnit = new CodeCompileUnit();
        string _proxyCode;

        using (StringWriter writer = new StringWriter())
        {
            CodeGeneratorOptions codeGenOptions = new CodeGeneratorOptions();
            codeGenOptions.BracingStyle = "C";
            _codeDomProvider.GenerateCodeFromCompileUnit(_codeCompileUnit, writer, codeGenOptions);
            writer.Flush();
            _proxyCode = writer.ToString();
        }

        CompilerParameters compilerParams = new CompilerParameters();
        compilerParams.OutputAssembly = "some local path \\aName.dll";

        CompilerResults results;

        results = codeDomProvider.CompileAssemblyFromSource(compilerParams,_proxyCode);

        _proxyAssembly = results.CompiledAssembly;
        return _proxyAssembly;
    }
}

这是我能够聚在一起的最好的例子,但我不确定它是否正确,也不知道我错过了什么,比如实际的课程得到的地方添加以及如何完成该方法。

任何帮助都会很棒,谢谢

0 个答案:

没有答案