c# - 如何从 IntelliSense 隐藏公共(public)方法

标签 c# .net reflection intellisense encapsulation

我想从 IntelliSense 成员列表中隐藏公共(public)方法。我已经创建了一个属性,当应用于方法时,将导致在构造其对象时调用该方法。我这样做是为了更好地支持部分类。问题是在某些环境中(例如 Silverlight),反射无法访问私有(private)成员,即使是子类的私有(private)成员。这是一个问题,因为所有工作都是在基类中完成的。我必须公开这些方法,但我希望它们对 IntelliSense 隐藏,类似于 Obsolete 属性的工作方式。坦率地说,因为我对对象封装很反感。我尝试过不同的东西,但实际上没有任何效果。该方法仍显示在成员下拉列表中。

当我不希望客户端调用公共(public)方法时,如何防止公共(public)方法出现在 IntelliSense 中?真正的问题怎么样,非利士人!这也适用于必须公开的 MEF 属性,尽管有时您希望对客户端隐藏它们。

更新: 自从我发布这个问题以来,我作为开发人员已经成熟了。我不明白为什么我如此关心隐藏界面。

最佳答案

使用 EditorBrowsable像这样的属性将导致方法不在 IntelliSense 中显示:

[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public void MyMethod()
{
}

关于c# - 如何从 IntelliSense 隐藏公共(public)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9086136/

相关文章:

c# - 使用 CreateProcessAsUser 和 CreateEnvironmentBlock 创建进程后未设置 Clientname

c# - Webkit.Net 等待页面完全加载

c# - Nopcommerce View 未更新

c# - WPF TextBox 移动光标和改变焦点

Java,获取实现特定接口(interface)的 URLClassLoader 可用的所有类

c# - 如何添加自定义时间格式?

c# - Azure WebService 找不到我的程序集之一,但它基于 Azure 控制台

java - Java中通过JSON调用带参数的方法

java - 如何在 Java 中使用反射创建枚举实例?

c# - 更改测试运行器工作目录