BuildProvider:是否可以指定要生成的程序集的名称?

时间:2011-02-25 14:44:20

标签: asp.net buildprovider

我创建了一个自定义虚拟路径提供程序和构建提供程序,并想知道是否有可能以某种方式指定生成的程序集的名称,而不是让asp.net提出一个名称?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,很少有体操。可以从AssemblyBuilder获得对CodeDomProvider的引用,从那里就可以了解你想要做什么。 像这样的东西

 public override void GenerateCode(AssemblyBuilder assemblyBuilder)
        {
            string outputName = VirtualPath.Substring(VirtualPath.LastIndexOf('/') + 1);
            outputName = outputName.Substring(0, outputName.LastIndexOf('.'));

            _compilationContext = (CompilationContext)HttpContext.Current.Items[outputName];

           // var tw = assemblyBuilder.CreateCodeFile(this);
           // tw.Write(_compilationContext.Content);
           // tw.Flush();
           // tw.Close();

            //TODO: inject this 
            var factory = new DirectCompilerServiceFactory();
            var compilerService = factory.CreateCompilerService(assemblyBuilder.CodeDomProvider);

            compilerService.CompileAssembly(_compilationContext);

        }