PostSharp - 我做错了什么?

时间:2010-09-16 20:57:46

标签: c# .net aop postsharp

我有一个项目Company.Business,我正在尝试使用PostSharp来包装我的业务层。在项目Company.AOP中,我有一个方法边界方面来使用EL记录应用程序块:

[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,并没有像在网站上的示例中那样包装代码。这种方法有什么问题?

我安装了它,我确认它正在运行;它在编译期间生成输出,没有错误。

感谢。

1 个答案:

答案 0 :(得分:2)

当前版本中存在一个错误:如果指定AttributeTargetAssemblies,它将仅查看程序集引用,而不是当前项目。

因此,如果要向当前项目添加方面,请删除AttributeTargetAssemblies。