向Settings.Designer.cs添加注释

时间:2011-01-04 16:21:48

标签: c# visual-studio-2008 settings.settings

我在Visual Studio 2008项目中使用 .Settings 文件,该文件从 PublicSettingsSingleFileGenerator自动生成 Settings.Designer.cs 文件自定义工具。

这很好用,但我也想在编译选项中启用“Warnings as Error”,强制每个人都保持XML注释的最新状态,但我不知道如何为所有元素添加注释在自动生成的代码中。

通过在设计视图中选择元素并在属性窗口中添加“描述”,可以添加实际属性。但似乎没有办法为类声明或默认实例属性执行此操作。

重现此问题的步骤如下

  1. 创建新项目
  2. 将设置文件添加到项目
  3. 将设置文件的“访问修饰符”设置为“公共
  4. 转到项目属性,构建部分
  5. 将“将警告视为错误”设为全部
  6. 检查输出XML文档文件选项
  7. 构建解决方案
  8. 这是在PublicSettingsSingleFileGenerator Settings.Designer.cs文件中生成的代码

    namespace SettingsTest {
    
        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
        public sealed partial class Settings1 : global::System.Configuration.ApplicationSettingsBase {
    
            private static Settings1 defaultInstance = ((Settings1)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings1())));
    
            public static Settings1 Default {
                get {
                    return defaultInstance;
                }
            }
        }
    }
    

    不确定这些额外的信息是否应该成为问题部分的一部分,因为它在某种程度上指向答案

    根据此链接,应用于该类的属性似乎是错误的。

    http://blogs.msdn.com/b/codeanalysis/archive/2007/04/27/correct-usage-of-the-compilergeneratedattribute-and-the-generatedcodeattribute.aspx

    CompilerGenerateAttribute - 此属性仅供编译器使用,表示特定的代码元素是编译器生成的。这绝不应该在源代码中使用。”

    GeneratedCodeAttribute - 此属性供生成代码的自定义工具使用。它应仅应用于反复重新生成的代码,不应由用户的模板使用如果生成的类型是部分类,则应该在类型级别应用它。在这种情况下,它应该只应用于生成的类型部分中包含的各个成员。“< / p>

    更新

    我在Microsoft Connect网站上针对此提出了错误报告,并会更新,并在我们获取更多信息时接受答案http://connect.microsoft.com/VisualStudio/feedback/details/634692/publicsettingssinglefilegenerator-code-fails-when-treat-warnings-as-errors-is-set-to-all-and-xml-documentation-is-on

4 个答案:

答案 0 :(得分:2)

没有好办法,你不能在自动生成的文件中注入#pragma warning disable。也是Winforms设计器文件btw的问题。项目+属性,构建选项卡,抑制警告= 1591.但是,这将禁用诊断也可能需要打开它。 #pragma警告还原无法解决此问题。

答案 1 :(得分:1)

不幸的是,这里存在相互矛盾的问题\设置:

  • XML文档生成将警告公共成员的所有缺失评论。
  • 你已经“将警告视为错误”(一件好事)。
  • 正在针对您无法更改的课程(即生成的设置)提出警告。

这样做的结果是您将警告转换为无法修复的编译器错误。您无法可靠地手动向设置类添加注释,因为它们将在下次重新生成时丢失。

考虑将您的设置放在单独的项目中,并关闭该项目的XML文档。

答案 2 :(得分:0)

设置是部分类:创建第二个空白部分并对其进行评论。

答案 3 :(得分:0)

请参阅Documenting (XML) Application Settings in Visual Studio 2010

每个设置都有一个描述属性,这将在生成的代码中创建XML注释。在VS2010中测试工作。

相关问题