2017-02-09 1 views
0

J'ai essayé de définir les attributs multicast à public pour exclure les méthodes internes et privées, mais toujours pas de chance.PostSharp - System.InvalidOperationException lors de l'application à mscorlib -> System.DateTime

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using PostSharp.Aspects; 
using PostSharp.Extensibility; 

[assembly: test.AOP(AttributeTargetAssemblies = "mscorlib", 
    AttributeTargetTypes = "System.DateTime")] 

namespace test 
{ 
    [Serializable] 
    [MulticastAttributeUsage(TargetMemberAttributes = MulticastAttributes.Public)] 
    class AOP : OnMethodBoundaryAspect 
    { 
     public override void OnEntry(MethodExecutionArgs args) 
     { 
      Console.WriteLine("Entry: " + args.Method.Name); 
     } 
    } 
} 

Pour tester ce juste appeler partout sur votre code quelque chose comme ceci:

DateTime dt = DateTime.Now.Date; 

Je pense que la partie de la date est l'origine du problème. La solution pourrait être d'exclure cela mais cela pourrait arriver dans le futur avec d'autres méthodes donc j'ai besoin d'une solution plus "sûre"

+0

Cela semble être un bug dans le code tissé. Merci d'avoir signalé cela. Nous vous le ferons savoir dès qu'il sera réparé. –

Répondre

1

Ce bug est corrigé depuis PostSharp 4.3.30 et PostSharp 5.0.21.