Sto cercando di utilizzare post sharp e sto cercando di mettere insieme alcune demo. Uno di questi era un aspetto che registra le eccezioni e un altro era controllare gli argomenti nulli e lanciare un'eccezione quando ne si incontra uno.Applicazione di aspetti agli aspetti con postsharp
Il problema che sto avendo è che voglio il mio aspetto di registrazione delle eccezioni per registrare le eccezioni generate dall'aspetto di controllo nullo. Non sembra funzionare. Qualcuno sa di un modo per farlo funzionare?
EDIT: Per essere chiari, il registratore eccezione sta lavorando con eccezioni generate al di fuori di un aspetto, ma isnt registrazione eccezioni thown sulla NullCheckAttribute
Il codice per il nulla controllo aspetto è come segue
[Serializable]
public class NullCheckAttribute : OnMethodBoundaryAspect
{
[ExceptionLogger]
public override void OnEntry(MethodExecutionArgs args)
{
foreach (var argument in args.Arguments)
{
if (argument == null)
throw new InvalidOperationException("Null argument in " + args.Method.Name);
}
}
}
E il codice per l'eccezione logger
[Serializable]
public class ExceptionLoggerAttribute : OnMethodBoundaryAspect
{
public override void OnException(MethodExecutionArgs args)
{
Console.WriteLine("Exception thrown in " + args.Method.Name);
Console.WriteLine("***Message: " + args.Exception.Message);
Console.WriteLine("***Stack trace: " + args.Exception.StackTrace);
}
}
Vorrei anche ricordare che sto semplicemente utilizzando una licenza gratuita per Questo.
'Non sembra funzionare. - Cosa sta succedendo esattamente? – Muctadir
Il logger delle eccezioni funziona correttamente con le normali eccezioni, ma quelli che vengono lanciati nel NullCheckAttribute non vengono registrati. –
hai eseguito il debug di 'NullCheckAttribute' per vedere che' MethodExecutionArgs' è effettivamente nullo? – Muctadir