metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-12-25 11:42 am

Позднее связывание

Всякое конфигурирование приложений через позднее связывание, xml-конфиги и прочие аннотации-атрибуты чревато еще тем боком, что сдуру можно запросто удалить метод или класс на который формально ссылок в коде нет, и все это дело вполне себе соберется. А потом с грохотом умрет в рунтайме, и это еще хорошо, если на старте, а не где-нибудь в дебрях выполнения после сотни действий юзера.

[identity profile] metaclass.livejournal.com 2009-12-25 12:54 pm (UTC)(link)
Это он и есть. И он меня отсутствием статических проверок типов немного напрягает. Похоже, что для всех конфигов позднего связывания надо добавить обработку при билде и старте - проверить кошерность.
wizzard: (Default)

[personal profile] wizzard 2009-12-25 07:34 pm (UTC)(link)
Рефлекшеном можно искать список всех IAutoLoadable и дергать все.

[identity profile] alexandr0.livejournal.com 2009-12-25 11:38 pm (UTC)(link)
А если как-нибудь вот так? http://stackoverflow.com/questions/607178/c-how-enumerate-all-classes-with-custom-class-attribute/607239#607239

[identity profile] metaclass.livejournal.com 2009-12-26 10:39 am (UTC)(link)
Только если сборка с нужным классом уже загружена. А если использовать явный список - можно указать имя класса целиком, со сборкой, тогда она будет загружена.