PostSharp на сборках у меня нет источника для - PullRequest
7 голосов
/ 07 июля 2010

В примерах на своем веб-сайте PostSharp демонстрирует демонстрацию перехвата вызовов в основных сборках системы. Я несколько раз пытался настроить и воспроизвести упомянутые вызовы перехвата на сборках, исходный код которых у меня нет, но безуспешно.

Мой подход состоял в том, чтобы просто разместить атрибут уровня сборки, нацеленный на пространство имен и метод, который я хотел использовать. Это никогда не работало для меня.

что-то вроде:

[сборка: Trace ("MyCategory", AttributeTargetTypes = "My.BusinessLayer. *")]

Я что-то здесь упускаю? Могу ли я не делать инъекцию во время выполнения моего аспекта инструментария в сборку, если у меня нет источника для этого? Я думал, что смогу делать инъекции во время выполнения ...

Спасибо.

1 Ответ

5 голосов
/ 07 июля 2010

Вы можете отслеживать методы других сборок, указав:

[assembly: Trace("MyCategory",
                 AttributeTargetAssemblies="xyz",
                 AttributeTargetTypes = "My.BusinessLayer.*")]

Однако внешняя сборка не будет изменена! Только вызовы из текущего проекта во внешнюю сборку могут быть изменены.

В настоящее время нелегко изменить сборки, у которых нет источника. Это возможно, но считается сложным сценарием и требует пользовательского кодирования.

...