有选择地抑制C#中的XML代码注释?

时间:2010-03-19 00:59:37

标签: c# xml documentation code-documentation

我们向外部客户提供了许多程序集,但并非所有公共API都得到官方支持。例如,由于设计选择不是最佳,有时必须从组件公开公开类型才能使我们的其余代码工作,但我们不希望客户使用该类型。传达缺乏支持的一部分并不是以XML注释的形式提供任何智能感知。

有没有办法有选择地抑制XML注释?我正在寻找除了忽略警告1591之外的其他东西,因为这是一个长期维护问题。

示例:我有一个包含公共类A和B的程序集.A是官方支持的,应该有XML文档。 B不适合外部使用,不应记录在案。我可以打开XML文档然后禁止警告1591.但是当我稍后添加官方支持的类C时,我希望编译器告诉我,我已经搞砸了并且没有添加XML文档。如果我在项目级别压制了1591,就不会发生这种情况。我想我可以在整个课程中使用#pragma,但似乎应该有更好的方法来做到这一点。

4 个答案:

答案 0 :(得分:5)

制作此类方法internal,并将[assembly: InternalsVisibleTo("AssemblyName")]属性添加到展示它们的程序集中。

答案 1 :(得分:3)

  

沟通缺乏支持的一部分不提供任何   以XML形式的intellisense   评价。

您是否可以使用简单的< summary>评论这些方法而不是外部使用。< / summary> 评论?

答案 2 :(得分:3)

如何不提供intellisense?

///<summary>A documentation</summary> 
public class A { }

///<summary>B documentation. This class is not supported...</summary> 
[EditorBrowsable(EditorBrowsableState.Advanced)]
public class B { }

///<summary>C documentation</summary> 
public class C { }

这样,您仍然可以记录不受支持的类(内部用户也很重要!)并让您的外部用户在intellisense上看不到它们。在内部,您可以使visual studio“看到”这些高级构造。 EditorBrowsableAttribute的页面告诉我们如何:

  

在Visual C#中,您可以控制何时在“智能感知”和“属性”窗口中显示高级属性,并使用“工具”|“隐藏高级成员”设置。选项|文字编辑器| C#。相应的EditorBrowsableState为Advanced。

答案 3 :(得分:2)

尝试将#pragma指令用于enable or disable specific warnings

///<summary>some documentation</summary>
public class A{
    //...
}

#pragma warning disable 1591
public class B{
    //...
}