Estoy ejecutando una aplicación web .NET 4.0 (no sitio web) y PostSharp 1.5. No puedo ejecutar el método de anulación OnEntry con la clase base OnMethodBoundaryAspect. Aquí hay algunos códigos relevantes:PostSharp OnMethodBoundaryAspect OnEntry No se está ejecutando
public sealed class MonitorAttribute : OnMethodBoundaryAspect {
public string[] SomeValue { get; protected set; }
public MonitorAttribute (params string[] someValue){
SomeValue = someValue;
}
public override void OnEntry(MethodExecutionEventArgs eventArgs){
// do Something here
base.OnEntry(eventArgs);
}
}
public sealed class MyUsageClass : IMyUsageClass {
[Monitor(new string[]{ 'Test' })
public void SomeMethod {
// Do something else in here
}
}
¿Emite algo más? Nunca golpea el método OnEntry. También traté de reemplazar mis dependencias PostSharp.dll y PostSharp.Laos.dll con la nueva versión 2.0. Si se produce alguna diferencia, MyUsageClass
es instanciado por StructureMap.
Uso ILSpy (o reflector) y examinar su método después de tiempo de compilación. El método de destino debe tener una try/catch alrededor o, al menos, una llamada al método OnEntry del aspecto en la parte superior del cuerpo del método. –
Muy bueno. Estoy descargando ILSpy ahora ... Volveré a publicar pronto. ¡Gracias! – a432511
Ok. Al observar el método a través de ILSpy, no veo una llamada a OnEntry en la parte superior del cuerpo del método. – a432511