Есть ли проблемы с MEF и / или Unity при запутывании? - PullRequest
2 голосов
/ 02 декабря 2010

В настоящее время я использую MEF в архитектуре плагина.Я собираюсь запутать свой код, и у меня была проблема, не испортит ли это MEF, и это открытие.Я использую DirectoryCatalog для разрешения плагинов и планирую также запутывать плагины.Некоторые из расширений также запускаются в основной сборке, которая также будет запутана.

Итак, мой вопрос, будет ли это проблемой с MEF (запутывание) и если да, то страдает ли Unity оттот же самый?Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 09 марта 2011

Я столкнулся с проблемой с Unity и Obfuscation.В этом случае зависимости, которые должны быть разрешены с помощью единицы, были помечены атрибутом [ServiceDependency] в свойствах.Свойство в IL - не что иное, как метод Get и Set!связаны друг с другом некоторыми метаданными.Это то, что составляет собственность, ничего больше.Обфускация наткнулась и заменила свойство на родные методы получения и установки.Вы видите проблему?Свойство ушло (заменено методами).Отсутствие свойства означает отсутствие атрибута [ServiceDependency] в свойстве означает отсутствие инъекции зависимости означает, что нулевая ссылка означает сбой!

Здесь мы решили пометить свойства с помощью [ServiceDependency] И [Obfuscation (Feature = "renaming", Exclude =true)] (часть .Net Framework).

Если это важно для вас: обфускация была выполнена с помощью Dotfuscator Professional.

1 голос
/ 02 декабря 2010

Поскольку (в идеальном мире) bbfuscation не меняет двоичную совместимость сборки, я не вижу никаких проблем.

Тем не менее, я фактически не делал никакой работы с запутанными сборками и MEF, так что я могу ошибаться.

...