2010-11-09 20 views
5

mümkün böyle işaretli sınıflar ve/veya yöntemlere loggin davranışı enjekte mı:Bir özellik ile işaretlenmiş hedeflere yöntem çağrıları nasıl kaydedilir?

Ben yöntem çağrısı için loging davranışı gerçekleştirecek kendi Özellik sınıfı oluşturmak istiyorum
Log("Method {0} started",GetMethodNameTroughReflection) 
Call method body 
Log("Method {0} Finished",GetMethodNameTroughReflection) 

.

App.config dosyasındaki oturum açma davranışını tanımlamak istiyorum, yapılandırmayı yapılandırmadaki bir ayar tarafından devre dışı bırakılabilir.

Nasıl yapmalı? Belki de bunun gibi görevler için çözüm yaratılmış olabilir mi?

+0

'u kullanarak bunu gerçekleştirir. [PostSharp] (http://www.sharpcrafters.com/) veya bir [IoC framework] (http://en.wikipedia.org/wiki/Inversion_of_control) adresini kontrol etmek isteyebilirsiniz. ve [yönelimli programlama] hakkında bilgi edinin (http://stackoverflow.com/questions/242177/what-is-aspect-oriented-programming). –

cevap

4

Bu, en boy yönelimli programlama (AOP) kullanılarak yapılabilir. PostSharp'a bir göz atın. Burada izleme için örnek bakınız: 'boy yönelimli programlama' için

Non-Invasive Tracing & Logging

1

Arama - Günlüğü kanonik örnektir. örneğin this link, PostSharp

İlgili konular