我们向外部客户提供了许多程序集,但并非所有公共API都得到官方支持.例如,由于设计选择不是最佳,有时必须从组件公开公开类型才能使我们的其余代码工作,但我们不希望客户使用该类型.传达缺乏支持的一部分并不是以
XML注释的形式提供任何智能感知.
有没有办法有选择地抑制XML注释?我正在寻找除了忽略警告1591之外的其他事情,因为这是一个长期维护问题.
示例:我有一个包含公共类A和B的程序集.A是官方支持的,应该有XML文档. B不适合外部使用,不应记录在案.我可以打开XML文档然后禁止警告1591.但是当我稍后添加官方支持的类C时,我希望编译器告诉我,我已经搞砸了并且没有添加XML文档.如果我在项目级别压制了1591,就不会发生这种情况.我想我可以#cragma跨越整个类,但似乎应该有更好的方法来做到这一点.
解决方法
如何不提供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
的页面告诉我们如何:
In Visual C#,you can control when advanced properties appear in IntelliSense and the Properties Window with the Hide Advanced Members setting under Tools | Options | Text Editor | C#. The corresponding EditorBrowsableState is Advanced.