【问题标题】:How to add #pragma warning disable 1591 using CodeDom如何使用 CodeDom 添加 #pragma 警告禁用 1591
【发布时间】:2010-01-12 09:52:33
【问题描述】:

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

#pragma warning disable 1591 

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

【问题讨论】:

  • 这个答案有帮助吗?还在寻找其他方法吗?你有没有找到好的解决方案?

标签: codedom


【解决方案1】:
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);

(完全)不能很好地翻译成其他语言。 YMMV -伊恩

【讨论】:

    【解决方案2】:

    查看所有反射器代码,没有弹出“正确”的方式。 但是,如果您愿意进行一些后期处理,可能会有一种方法。 使用 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 警告

      禁用 1591
    • region #WARNINGSRESTORE -> #pragma 警告恢复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      相关资源
      最近更新 更多