How to hide public methods from intellisense
我想从IntelliSense成员列表中隐藏公共方法。我已经创建了一个属性,当应用于一个方法时,它将导致在构造该方法的对象时调用该方法。我这样做是为了更好地支持部分类。问题是,在某些环境(如Silverlight)中,反射无法访问私有成员,甚至无法访问子类的成员。这是一个问题,因为所有的工作都是在一个基类中完成的。我必须将这些方法公开,但我希望将它们隐藏在intellisense中,类似于
当我不希望客户机调用公共方法时,如何防止它们在IntelliSense中出现?这真是个问题,非利士人!这也适用于必须公开的MEF属性,尽管有时您希望将它们隐藏在客户机之外。
更新:自从我发布这个问题以来,我已经成为一个成熟的开发人员。为什么我如此在意隐藏界面,这是我无法理解的。
使用这样的
1 2 3 4 | [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public void MyMethod() { } |
你在找
The following sample demonstrates how to hide a property of a class
from IntelliSense by setting the appropriate value for the
EditorBrowsableAttribute attribute. Build Class1 in its own assembly.In Visual Studio, create a new Windows Application solution, and add a
reference to the assembly which contains Class1. In the Form1
constructor, declare an instance of Class1, type the name of the
instance, and press the period key to activate the IntelliSense
drop-down list of Class1 members. The Age property does not appear in
the drop-down list.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | using System; using System.ComponentModel; namespace EditorBrowsableDemo { public class Class1 { public Class1() { // // TODO: Add constructor logic here // } int ageval; [EditorBrowsable(EditorBrowsableState.Never)] public int Age { get { return ageval; } set { if (!ageval.Equals(value)) { ageval = value; } } } } } |
展开我对分部方法的评论。试试这个
Po.P1.1.CS
1 2 3 4 5 6 7 8 9 | partial class Foo { public Foo() { Initialize(); } partial void Initialize(); } |
第二部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | partial class Foo { partial void Initialize() { InitializePart1(); InitializePart2(); InitializePart3(); } private void InitializePart1() { //logic goes here } private void InitializePart2() { //logic goes here } private void InitializePart3() { //logic goes here } } |