Chcę ukryć publiczne metody z listy członków intellisense. Stworzyłem atrybut, który po zastosowaniu do metody spowoduje wywołanie metody, gdy jej obiekt zostanie skonstruowany. Zrobiłem to, aby lepiej wspierać klasy częściowe. Problem polega na tym, że w niektórych środowiskach (takich jak Silverlight) refleksja nie może uzyskać dostępu do prywatnych członków, nawet tych klas dzieci. Jest to problem, ponieważ cała praca jest wykonywana w klasie bazowej. Muszę upublicznić te metody, ale chcę, aby były ukryte przed intellisense, podobnie jak działa atrybut Obsolete
. Szczerze mówiąc, ponieważ mówię o enkapsulacji obiektów. Próbowałem różnych rzeczy, ale nic nie zadziałało. Metoda nadal pojawia się w menu listy.Jak ukryć publiczne metody od intellisense
Jak zachować publiczne metody wyświetlania w intellisense, gdy nie chcę, aby były one wywoływane przez klientów? Jak to jest dla pytania prawdziwe, Filistyni! Może to również dotyczyć właściwości MEF, które muszą być publiczne, chociaż czasami trzeba je ukryć przed klientami.
Aktualizacja: Mam dojrzałe jako programista, ponieważ opublikowałem to pytanie. Dlaczego tak bardzo zależało mi na ukrywaniu interfejsu, jest poza mną.
Nie zmuszaj ich do publicznej wiadomości, jeśli nie chcesz, żeby być dostępne/używane. – Oded
Więc zamiast dodawać wywołania metod w konstruktorze obiektu, dodajesz atrybuty i wywołujesz je za pomocą odbicia? Jeśli chodzi o twoją uwagę na temat "lepszych klas częściowych", to czyż nie są to częściowe metody? – cadrell0
Jawne implementowanie interfejsu może być alternatywnym podejściem do rozważenia. Metody te nie są częścią publicznego interfejsu API tej klasy, ale są widoczne tylko za pośrednictwem interfejsu. –