Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Removing items in code generated from Codedom

Tags:

vb.net

codedom

Is there a way to remove items in code generated in Codedom from VB code?

For example at the top of all the code I generate, it has:

'------------------------------------------------------------------------------
' 
'     This code was generated by a tool.
'     Runtime Version:4.0.30319.1
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' 
'------------------------------------------------------------------------------
Option Strict Off 
Option Explicit On 

I'd like both of these to go away - the commented text and the both the Option xxx. I've tried toying around with CodeGeneratorOptions, but have not been able to remove the above from generated code.

like image 632
Todd Main Avatar asked Aug 13 '10 00:08

Todd Main


2 Answers

For #2, have you tried this?

CodeCompileUnit.UserData.Add("AllowLateBound", False) ' strict on
CodeCompileUnit.UserData.Add("RequireVariableDeclaration", False) ' explicit off

(where CodeCompileUnit is a variable of type CodeCompileUnit)

like image 130
Dumb Guy Avatar answered Nov 15 '22 11:11

Dumb Guy


You can use a StringWriter to output your code, then use StringBuilder.Remove in order to delete the first lines:

using (var stringWriter = new StringWriter())
using (var streamWriter = new StreamWriter(path))
{
    codeDomProvider.GenerateCodeFromCompileUnit(unit, stringWriter, options);
    StringBuilder sb = stringWriter.GetStringBuilder();
    /* Remove the header comment (444 is for C#, use 435 for VB) */
    sb.Remove(0, 444);
    streamWriter.Write(sb);
}

It's ugly, but it works ™

like image 25
Maxence Avatar answered Nov 15 '22 12:11

Maxence