В примерах на их веб-сайте PostSharp имеет демонстрацию прерывания вызовов в блоках основной системы. Я попытался несколько раз установить и копировать, сказал, что прерывание обращается к блокам, для которых у меня нет исходного кода без успеха.
Мой подход должен был просто поместить атрибут уровня ассемблера, предназначающийся для пространства имен и метода, который я хотел оснастить. Это никогда не работало на меня.
что-то как:
[блок: трассировка ("MyCategory", AttributeTargetTypes = "мой. BusinessLayer.*")]
Я пропускаю что-то здесь? Разве я не могу сделать инжекции во время выполнения своего аспекта инструментария на блоке, если мне не втянули источник для него? Я думал, что мог сделать инжекции во время выполнения...
Спасибо.
Вы можете отслеживать методы других сборок, указав:
[assembly: Trace("MyCategory",
AttributeTargetAssemblies="xyz",
AttributeTargetTypes = "My.BusinessLayer.*")]
Однако внешняя сборка не будет изменена! Модифицированы могут быть только вызовы из текущего проекта к внешней сборке.
В настоящее время нелегко модифицировать сборки, исходные тексты которых у вас отсутствуют. Это возможно, но считается продвинутым сценарием и требует специального кодирования.