पहला, GetInvocationList()
काम नहीं करेगा, क्योंकि मैं कक्षा के बाहर से उन्हें प्राप्त करने में सक्षम होना चाहता हूं। मुझे लगता है कि यह कुछ प्रतिबिंब जादू के साथ काम करेगा, और यही वह है जिसे मैं समझने की कोशिश कर रहा हूं।प्रतिबिंब का उपयोग करके किसी ईवेंट से अंतर्निहित प्रतिनिधियों की सूची कैसे प्राप्त कर सकता हूं?
fooEventDispatcher.GetType().GetField("FooEvent", BindingFlags.Instance | BindingFlags.NonPublic);
var field = fieldInfo.GetValue(fooEventDispatcher);
मैं सिर्फ field
साथ क्या करना है पता नहीं है:
यहाँ है कि मैं क्या अभी है। कोई विचार?
क्या आप हमें इनवॉइस सूची को देखने का लक्ष्य क्या कर सकते हैं? इस उद्देश्य के आधार पर, परिणाम प्राप्त करने के लिए प्रतिबिंब से एक आसान तरीका हो सकता है। –
@ जोएल: मैं यूनिट परीक्षण करना चाहता हूं कि कोई ऑब्जेक्ट किसी ईवेंट में स्वयं सदस्यता ले रहा है। आमंत्रण के दुष्प्रभाव का परीक्षण करना एक साफ समाधान नहीं है। – ryeguy
क्यों GetInvocationList() काम नहीं करेगा? यह एक सार्वजनिक विधि है और बाहर से कोई भी उस विधि को कॉल कर सकता है, जब तक कि आपकी कक्षा असेंबली में आंतरिक न हो। – ferosekhanj