metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-12-11 01:04 pm
Entry tags:

private/internal методы и классы в .NET

А вот скажите, почему у авторов гопнета так популярно делать классы и методы недоступными для разработчиков?
Сейчас сижу, например в ILSpy и делаю обертку над ServiceController, потому что нельзя без ловли исключений узнать, существует ли сервис, а конфигурацию сервиса так и вообще никак прямо узнать нельзя. При этом все полезные методы и классы (нативный интероп итд) сугубо приватные или внутренние.

[identity profile] w00dy.livejournal.com 2012-12-11 10:12 am (UTC)(link)
так у vcl жеж сорцы доступны

[identity profile] evil-invader.livejournal.com 2012-12-11 10:40 am (UTC)(link)
перекомпиливать vcl?

[identity profile] w00dy.livejournal.com 2012-12-11 10:43 am (UTC)(link)
как минимум то что нужно. Плюс наличие сорцов облегчает анализ. Я таким образом нашёл у DevExpress-овского грида обходные пути и сделал то что нужно было.

[identity profile] evil-invader.livejournal.com 2012-12-11 10:57 am (UTC)(link)
ну вот по сорцам я как раз и понял, что нужные мне методы в привате. Не перекомпиливать vcl может и хорошая идея, но тогда на все машины разработчиков пришлось бы мою версию vcl ставить.

[identity profile] w00dy.livejournal.com 2012-12-11 11:19 am (UTC)(link)
насчёт пересобрать всё я кажется погорячился. Как ещё вариант - отнаследоваться от нужного класса, перетащить в него всё что нужно и править. Чтобы таскать не всю vcl, а только минимум, если такое возможно и имеет смысл. Ну а перетянуть разрабов просто - положил бинарники в репо, настроил все пути чтобы искало там. Со следующим апдейтом всё приедет всем ;)

[identity profile] sbj-ss.livejournal.com 2012-12-11 06:13 pm (UTC)(link)
Ребе, ви таки не слышали про crack-классы? Мы в своё время неоднократно пользовались.

[identity profile] w00dy.livejournal.com 2012-12-11 06:22 pm (UTC)(link)
про такой фокус не слышал. Забавная технология.

[identity profile] metaclass.livejournal.com 2012-12-11 06:27 pm (UTC)(link)
Я постоянно использую. Да его сам борланд везде использовал.
По моему, как обходной вариант - заебись.