我们向外部客户提供了许多程序集,但并非所有公共API都得到官方支持。例如,由于设计选择不是最佳,有时必须从组件公开公开类型才能使我们的其余代码工作,但我们不希望客户使用该类型。传达缺乏支持的一部分并不是以XML注释的形式提供任何智能感知。
有没有办法有选择地抑制XML注释?我正在寻找除了忽略警告1591之外的其他东西,因为这是一个长期维护问题。
示例:我有一个包含公共类A和B的程序集.A是官方支持的,应该有XML文档。 B不适合外部使用,不应记录在案。我可以打开XML文档然后禁止警告1591.但是当我稍后添加官方支持的类C时,我希望编译器告诉我,我已经搞砸了并且没有添加XML文档。如果我在项目级别压制了1591,就不会发生这种情况。我想我可以在整个课程中使用#pragma,但似乎应该有更好的方法来做到这一点。
答案 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{
//...
}