Ben yazı keskin kullanarak arıyorum ve birkaç demoları bir araya getirmek çalışıyorum. Bunlardan biri istisnaları kaydedecek bir özellikti, diğeri ise null argümanları kontrol etmek ve biriyle karşılaşıldığında bir istisna atmaktı.postsharp ile yönlere yönlerini uygulama
Karşılaştığım sorun, null denetim yönü tarafından atılan özel durumları günlüğe kaydetmek için özel günlüğe kaydetme özelliğimi istemektir. Çalışmıyor gibi gözüküyor. Bu işi yapmanın bir yolu var mı?
DÜZENLEME: Açık olmak gerekirse, istisna logger bir yönünün dışında atılan istisnalar dışında çalışıyor, ancak yönüyle kontrol için null kod
aşağıdaki gibidir NullCheckAttributeüzerinde thown istisnalar giriş isnt
[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);
}
}
}
Ve istisna kaydedicisi
[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);
}
}
için kod Ben de sadece özgür ruhsat için kullanıyorum bahsetmeliyiz bu.
'Çalışıyor gibi görünmüyor. - tam olarak ne oluyor? – Muctadir
İstisna kaydedici normal istisnalarla düzgün çalışıyor, ancak NullCheckAttribute öğesinde atılanlar günlüğe kaydediliyor. –
'MethodExecutionArgs' gerçekten null olduğunu görmek için 'NullCheckAttribute' hata ayıklamadınız mı? – Muctadir