मुझे लगता है कि आप क्या पहलू उन्मुख प्रोग्रामिंग करार दिया है के लिए देख रहे हैं। इसके साथ मदद करने के लिए कई सी # पुस्तकालय हैं। एक को PostSharp कहा जाता है (PostSharp का मुफ्त संस्करण इस कार्यक्षमता का समर्थन करता है)। यहां मूस उदाहरण के समान उदाहरण है। उसके ठीक पहले वाले
[Serializable]
public class TraceAttribute : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
Trace.WriteLine("about to call method");
}
public override void OnExit(MethodExecutionArgs args)
{
Trace.WriteLine("just finished calling method");
}
}
आप विधि "फू" के लिए यह जोड़ना होगा ट्रेस रखकर विशेषता:: यह एक ट्रेस गुण है जो आप अन्य तरीकों पर उपयोग कर सकते हैं इस अतिरिक्त कार्यक्षमता पर हमले के लिए बनाता है
[Trace]
public void Foo() { /* ... */ }
अब जब फू निष्पादित होता है, तो उपर्युक्त ऑनएन्ट्री विधि इससे पहले चली जाएगी, और ऑनएक्सिट ठीक बाद में चलेगा।
स्रोत
2011-02-01 22:04:12
आप शायद कुछ निफ्टी प्रतिबिंब के साथ कर सकते हैं, लेकिन मुझे नहीं लगता कि यह सुंदर होगा ... – Alxandr