コード例 #1
0
        public static System.IO.Stream GenerateViaCodeDOM(Utility.OutputType outputType, System.CodeDom.CodeCompileUnit compileunit)
        {
            System.CodeDom.Compiler.CodeDomProvider    provider = null;
            System.CodeDom.Compiler.ICodeGenerator     gen;
            System.CodeDom.Compiler.IndentedTextWriter tw = null;
            System.IO.MemoryStream stream;
            System.IO.StreamWriter writer;

            switch (outputType)
            {
            case Utility.OutputType.VB:
                provider = new Microsoft.VisualBasic.VBCodeProvider();
                break;

            case Utility.OutputType.CSharp:
                provider = new Microsoft.CSharp.CSharpCodeProvider();
                break;
            }
            gen = provider.CreateGenerator();

            try
            {
                stream = new System.IO.MemoryStream();
                writer = new System.IO.StreamWriter(stream);
                tw     = new System.CodeDom.Compiler.IndentedTextWriter(writer, "   ");
                gen.GenerateCodeFromCompileUnit(compileunit, tw, new System.CodeDom.Compiler.CodeGeneratorOptions());
                tw.Flush();
                stream.Seek(0, System.IO.SeekOrigin.Begin);
            }
            catch (System.Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
                if (tw != null)
                {
                    tw.Flush();
                    tw.Close();
                }
                throw;
            }
            return(stream);
        }
コード例 #2
0
 protected internal string GetCommentEnd(Utility.OutputType language)
 {
     return(GetCommentEnd(language.ToString()));
 }