У меня есть два три проектаPostSharp аспект не работает при реализации в сборку и вызова этого метода
1. рамочные 2. Repository 3. MVC проект
В рамках проекта я реализован аспект
namespace FrameworkHelper.TestAspect
{
[Serializable]
[MulticastAttributeUsage(MulticastTargets.Method)]
public class CacheAspect : OnMethodBoundaryAspect
{
// This field will be set by CompileTimeInitialize and serialized at build time,
// then deserialized at runtime.
public string methodName;
// Method executed at build time.
public override void CompileTimeInitialize(MethodBase method, AspectInfo aspectInfo)
{
this.methodName = method.DeclaringType.FullName + "." + method.Name;
}
// This method is executed before the execution of target methods of this aspect.
public override void OnEntry(MethodExecutionArgs args)
{
}
// This method is executed upon successful completion of target methods of this aspect.
public override void OnSuccess(MethodExecutionArgs args)
{
}
}
}
And aspect implemented into repository project
[TestAspect]
public List<string> TestMethod()
{
}
, Когда мы вызываем метод TestMethod() из проекта MVC, аспект не работает, что не так в этом коде.
Его работая отлично когда мы используем с одной сборкой.
Вы используете PostSharp в этом проекте MVC? Вкратце PostSharp должен быть включен как в проекте, который определяет аспект, так и в проекте, который его использует. Тогда другая возможность заключается в том, что у вас есть либо лицензия Ultimate, либо она находится в пробном периоде, что позволит включить оптимизатор параметров, а затем OnEntry и OnSuccess могут быть удалены, поскольку они пусты (по крайней мере, в вашем примере). –