2014-09-16 1 views
0

У меня есть два три проекта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, аспект не работает, что не так в этом коде.

Его работая отлично когда мы используем с одной сборкой.

+0

Вы используете PostSharp в этом проекте MVC? Вкратце PostSharp должен быть включен как в проекте, который определяет аспект, так и в проекте, который его использует. Тогда другая возможность заключается в том, что у вас есть либо лицензия Ultimate, либо она находится в пробном периоде, что позволит включить оптимизатор параметров, а затем OnEntry и OnSuccess могут быть удалены, поскольку они пусты (по крайней мере, в вашем примере). –

ответ

0

К сожалению Daniel, Сво работает отлично с последней версией PostSharp, прямо сейчас, используя PostSharp из 3.1.50.9

Прежде чем я использовал 3.1.48, может быть, это проблема со старой версией.

Thanks

0

Я создал новый проект для тестирования scanario и загрузки проекта в github, который вы можете пройти и можете протестировать домашний контроллер индекса.

https://github.com/virenderkverma/PostSharp-Examples

Project - PostSharpMultipleAssemblyCall

Вы можете протестировать этот проект

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