Я хочу скрыть общедоступные методы из списка членов intellisense. Я создал атрибут, который при применении к методу вызовет вызов метода при его создании. Я сделал это, чтобы лучше поддерживать частичные классы. Проблема в том, что в некоторых средах (например, Silverlight) отражение не может получить доступ к частным членам, даже к дочерним классам. Это проблема, поскольку вся работа выполняется в базовом классе. Я должен сделать эти методы общедоступными, но я хочу, чтобы они были скрыты от intellisense, подобно тому, как работает атрибут Obsolete
. Честно говоря, потому что я анал об инкапсуляции объектов. Я пробовал разные вещи, но на самом деле ничего не получилось. Метод все еще отображается в раскрывающемся списке участников.Как скрыть общедоступные методы от intellisense
Как заставить публичные методы появляться в intellisense, когда я не хочу, чтобы их вызывали клиенты? Как это для real вопрос, Филистимляны! Это также может относиться к свойствам MEF, которые должны быть общедоступными, хотя иногда вы хотите скрыть их от клиентов.
Обновление: Я созрел как разработчик с тех пор, как я разместил этот вопрос. Почему я так сильно заботился о том, чтобы скрывать интерфейс, вне меня.
Не обнародует их, если вы не хотите, чтобы они были доступны и б/у. – Oded
Итак, вместо добавления вызовов к методам в конструкторе объекта вы добавляете атрибуты и вызываете их через отражение? Что касается вашего комментария о «улучшенных вспомогательных частичных классах», разве это не то, что для частичных методов? – cadrell0
Явная реализация интерфейса может быть альтернативным подходом к рассмотрению. Затем методы не являются частью общедоступного API класса, но только видимы через интерфейс. –