2010-09-16 3 views
0

У меня есть проект Company.Business, который я пытаюсь настроить с PostSharp, чтобы обернуть мой бизнес-уровень. В Company.AOP проекта, у меня есть метод граничного аспект использования блока приложений протоколирования EL как таковые:PostSharp - Что я делаю неправильно?

[Serializable] 
public class MethodExcecutionAttribute : OnMethodBoundaryAspect 
{ 
    public override void OnEntry(MethodExecutionEventArgs eventArgs) 
    { 
     base.OnEntry(eventArgs); 

     //Log message 
    } 

    public override void OnException(MethodExecutionEventArgs eventArgs) 
    { 
     base.OnException(eventArgs); 

     //Log message 
    } 

    public override void OnExit(MethodExecutionEventArgs eventArgs) 
    { 
     base.OnExit(eventArgs); 

     //Log message 
    } 
} 

достаточно просто; он просто записывает точку во времени. Я стараюсь, чтобы предназначаться весь свой бизнес слой с помощью:

[assembly: MethodExcecution(AttributeTargetTypes = "*", 
    AttributeTargetAssemblies = "Company.Business", 
    AttributeTargetTypeAttributes = MulticastAttributes.Public, 
    AttributeTargetMemberAttributes = MulticastAttributes.Public)] 

Но после компиляции, я проверять DLL и не обернуть код, как в примерах на веб-сайте. Что не так с этим подходом?

У меня есть он установлен, и я проверил, что он работает; он генерирует выходные данные во время компиляции с нулевыми ошибками.

Спасибо.

ответ

2

В текущем выпуске есть ошибка: если вы укажете AttributeTargetAssemblies, он будет выглядеть только по ссылкам сборки, а не по текущему проекту.

Итак, если вы хотите добавить аспекты к текущему проекту, удалите AttributeTargetAssemblies.

+0

. Нужно ли мне тогда иметь аспекты в том же проекте, на который я нацеливаюсь, или каким образом аспекты Company.AOP в этой DLL нацелены на компоненты компании. Я смущен. Благодарю. –

Смежные вопросы