कुछ भी अंतर्निहित नहीं है जिसमें आपको उस ऑब्जेक्ट को अवरुद्ध करने की अनुमति मिलती है जिसे आप तत्काल नियंत्रित नहीं कर सकते। इसी तरह, आगामी .NET 4.0 में इसके लिए कोई नई सुविधा नहीं होगी।
आप नियंत्रित कर सकते हैं इन्स्टेन्शियशन: अपनी वस्तु हो सकता है
- तो MarshalByRef आप RealProxy उपयोग कर सकते हैं।
- आप कुछ आईओसी कंटेनर का उपयोग कर सकते हैं, उदाहरण के लिए। LinFu, Castle Dynamic Proxy
- आप PostSharp, Mono Cecil या Microsoft CCI जैसे उपकरण भी एक पोस्ट संकलन कदम के रूप में इंटरसेप्शन के साथ अपने विधानसभाओं के पुनर्लेखन के लिए कर सकता है।
आप इन्स्टेन्शियशन नियंत्रित नहीं कर सकते, तो
- आप ICorDebug उपयोग कर सकते हैं - नेट डिबगिंग एपीआई जो वास्तव में उपयोग करने के लिए कड़ी मेहनत और भारी कर रहे हैं।
- आप ICorProfiler का उपयोग कर सकते हैं - नेट प्रोफाइलिंग एपीआई जहां उपयोग करने के लिए भी बहुत जटिल हैं।
वैकल्पिक रूप से, आप IronRuby है, जो एक में निर्मित alias_method
और define_method
अच्छाई (जो आप कुछ भी फिर से परिभाषित करने की अनुमति देता है), इसलिए अवरोधन में पकाया।
है की तरह एक गतिशील भाषा पर विचार कर सकता है। नेट 4.5 ReJIT विधियों के लिए एक विधि पेश कर रहा है जो विधि इंटरसेप्शन के लिए एक और हुक प्रदान करता है (बशर्ते आप एक समवर्ती/बीजी जीसी नहीं चला रहे हैं और विधि को रेखांकित नहीं किया गया है)
स्रोत
2009-08-26 01:13:13
दृढ़ता से संबंधित: http://stackoverflow.com/questions/25803/how-do-i-intercept-a-method-call-in-c –
यह दृढ़ता से संबंधित है? मेरे पास कोई कक्षा नहीं है जिसमें मैं गुण जोड़ सकता हूं। – karmasponge
मैं वर्तमान में 'RealProxy' और 'प्रोफ़ाइल इंजेक्शन एप्लिकेशन ब्लॉक' की जांच कर रहा हूं। – karmasponge