Как скрыть общественные методы от intellisense

Я хочу скрыть общедоступные методы из списка членов intellisense. Я создал атрибут, который при применении к методу вызовет вызов метода при его создании. Я сделал это, чтобы лучше поддерживать частичные classы. Проблема в том, что в некоторых средах (например, Silverlight) reflection не может получить доступ к частным членам, даже к дочерним classам. Это проблема, поскольку вся работа выполняется в базовом classе. Я должен сделать эти методы общедоступными, но я хочу, чтобы они были скрыты от intellisense, подобно тому, как работает атрибут Obsolete . Честно говоря, потому что я анал об инкапсуляции объектов. Я пробовал разные вещи, но на самом деле ничего не получилось. Метод все еще отображается в раскрывающемся списке участников.

Как заставить публичные методы появляться в intellisense, когда я не хочу, чтобы их вызывали клиенты? Как это для реального вопроса, Филистимляне! Это также может относиться к свойствам MEF, которые должны быть общедоступными, хотя иногда вы хотите скрыть их от клиентов.

Обновление: я созрел как разработчик, так как я разместил этот вопрос. Почему я так сильно заботился о том, чтобы скрывать интерфейс, вне меня.

3 Solutions collect form web for “Как скрыть общественные методы от intellisense”

Расширить мой комментарий о частичных методах. Попробуйте что-то вроде этого

Foo.part1.cs

 partial class Foo { public Foo() { Initialize(); } partial void Initialize(); } 

Foo.part2.cs

 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 } } 

Использование атрибута EditorBrowsable например, приведет к тому, что метод не будет показан в intellisense:

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

Вы ищете EditorBrowsableAttribute

В следующем примере показано, как скрыть свойство classа из IntelliSense, установив соответствующее значение для атрибута EditorBrowsableAttribute. Сборка classа 1 в собственной сборке.

В Visual Studio создайте новое решение для Windows и добавьте ссылку на сборку, которая содержит Class1. В конструкторе Form1 объявите экземпляр classа 1, введите имя экземпляра и нажмите клавишу периода, чтобы активировать раскрывающийся список IntelliSense членов Class1. Свойство Age не отображается в раскрывающемся списке.

 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; } } } } } 
Interesting Posts

java.lang.IllegalStateException: путь к исполняемому файлу драйвера должен быть задан с помощью свойства webdriver.chrome.driver

Видео Youtube воспроизводится только от 50 секунд до полутора минут

Что означает публикация сообщения об ошибке Google Play APK?

Обновление диалога выполнения в Activity из AsyncTask

Ubuntu, управлять запуском init

Настройка кнопок быстрого доступа в левой части File-> Open dialog в большинстве программ Windows

Что может случиться, если printf вызывается с неправильной строкой формата?

Windows 7 занимает больше места, чем Vista?

Как заставить Internet Explorer (IE) ДЕЙСТВИТЕЛЬНО перезагрузить страницу?

Hibernate не работает в Windows 7 64bit

Инициализация файла INI в PowerShell

Что делает «async: false» в jQuery.ajax ()?

Позволяя клавише «Ввод» нажать кнопку «Отправить», в отличие от использования только MouseClick

Как исправить: android.app.RemoteServiceException: неправильное уведомление, отправленное из пакета *: не удалось создать значок: StatusBarIcon

Как расширить раздел Linux ext3?

Давайте будем гением компьютера.