如何使用CodeDom添加#pragma warning disable 1591

时间:2009-04-14 14:43:33

标签: codedom

我们的应用程序的一部分使用使用CodeDom生成的代码。此代码不需要Xml注释,因此我们想添加

#pragma warning disable 1591 

到那些生成的文件。 CodeDom是否可以实现这一点,如果没有,那么有关于如何实现这一目标的其他建议吗?

2 个答案:

答案 0 :(得分:4)

provider.GenerateCodeFromCompileUnit(
    new CodeSnippetCompileUnit("#pragma warning disable 1591"),
    sourceWriter, options);
provider.GenerateCodeFromCompileUnit(targetUnit, sourceWriter, options);
provider.GenerateCodeFromCompileUnit(
    new CodeSnippetCompileUnit("#pragma warning restore 1591"),
    sourceWriter, options);

不能很好地(根本没有)翻译成其他语言。 因人而异 -Ian

答案 1 :(得分:0)

查看所有反射器代码,没有任何东西弹出“正确”的方式。 但是,如果您愿意进行一些后代处理,可能会有一种方法。 使用RegionDirective,在RegionText值中放置一个特殊标记。然后,生成代码后,返回并执行字符串替换。

由于我没有在代码中看到强制匹配代码区域的任何内容,因此您可以在末尾使用单个起始代码区域来再次启用警告。

例如。你的令牌可能是“#PRAGMA1591”和“#ENABLEWARNINGS”。因此,在生成代码之后,您将拥有

#region #PRAGMA1591

...

#region #WARNINGRESTORE
#endregion

然后你会做一个字符串替换来产生这个:

#region Disable Warning 1591
#pragma warning disable 1591

...

#pragma warning restore
#endregion

你的字符串扩展如下:

  • PRAGMA1591 - >忽略缺少XML文档\ n #pragma warning

    禁用1591
  • region #WARNINGSRESTORE - > #pragma warning restore