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.
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)
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 ™
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With