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

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

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

[identity profile] bydl0coder.livejournal.com 2012-12-11 11:40 am (UTC)(link)
Ситуация "ССЗБ" это когда все методы и классы открыты - воруй, убивай, еби гусей, но будь готов ответить по закону. А тут все закрыто и "хак" заключается в создании форка.

[personal profile] alll 2012-12-11 12:33 pm (UTC)(link)
ну какбэ открытость метода - это некий контракт на поддержание его в совместимом состоянии (выполняемый ли в дальнейшем - отдельный философский вопрос), желание отдельно взятого пользователя библиотеки воровать-убивать-и_третье_тоже тут не при чём

[identity profile] psilogic.livejournal.com 2012-12-11 12:43 pm (UTC)(link)
если все закрыто, значит вся эта архитектура может в следующей версии по пизде пойти

[identity profile] pv-jewel.livejournal.com 2012-12-11 01:17 pm (UTC)(link)
Открыть никогда не поздно. Особенно в следующей версии.

[identity profile] bydl0coder.livejournal.com 2012-12-11 01:58 pm (UTC)(link)
Ну и пусть идет, у меня старая либа останется, благо, можно указать, какая версия нужна.

[identity profile] psilogic.livejournal.com 2012-12-11 02:41 pm (UTC)(link)
А когда в новой версии появится какая-то фича, которую вам захочется поюзать, вам придется тратить дополнительные усилия на переход к новой версии.

[identity profile] bydl0coder.livejournal.com 2012-12-11 03:04 pm (UTC)(link)
Как и говорилось выше, ССЗБ. В дотнете можно атрибут ставить.