2010-07-07 13 views
7

के लिए स्रोत नहीं है, उनकी वेबसाइट पर उदाहरणों में, पोस्टशर्प में मुख्य सिस्टम असेंबली में कॉल को अवरुद्ध करने का एक डेमो है। मैंने असेंबली पर कहा गया इंटरसेप्ट कॉल सेट अप करने और दोहराने के लिए कुछ बार कोशिश की है, मेरे पास सफलता के बिना स्रोत कोड नहीं है।असेंबली पर पोस्टशर्प मेरे पास

मेरा दृष्टिकोण केवल नामस्थान और विधि को लक्षित करने वाले असेंबली स्तर विशेषता को स्थानांतरित करना था जिसे मैं उपकरण बनाना चाहता था। यह मेरे लिए कभी काम नहीं किया है।

कुछ की तरह:

[विधानसभा: ("। My.BusinessLayer *" "MyCategory", AttributeTargetTypes =) ट्रेस]

मैं यहाँ कुछ याद आ रही है? क्या मैं असेंबली पर अपने उपकरण पहलू के रनटाइम इंजेक्शन नहीं कर सकता अगर मेरे पास स्रोत खींचने के लिए नहीं है? मैंने सोचा कि मैं रनटाइम इंजेक्शन कर सकता हूं ...

धन्यवाद।

उत्तर

5

आप को निर्दिष्ट करके अन्य विधानसभाओं के तरीकों का पता लगाने कर सकते हैं:

[assembly: Trace("MyCategory", 
       AttributeTargetAssemblies="xyz", 
       AttributeTargetTypes = "My.BusinessLayer.*")] 

हालांकि, बाहरी विधानसभा संशोधित नहीं किया जाएगा! वर्तमान परियोजना से केवल बाहरी असेंबली तक कॉल को संशोधित किया जा सकता है।

वर्तमान में उन असेंबली को संशोधित करना आसान नहीं है जिनके पास स्रोत नहीं है। यह संभव है, लेकिन एक उन्नत परिदृश्य माना जाता है और कस्टम कोडिंग की आवश्यकता होती है।

+0

गेल, तो ... अगर मैंने एक यूनिट टेस्ट बनाया है और मैं एक विधि कॉल को रोकना चाहता हूं क्योंकि यह एक "उच्च लागत" विधि है ... मैं इस बारे में बात कर रहा हूं क्योंकि आप ऊपर के बारे में बात कर रहे हैं, लेकिन केवल इकाई टेस्ट की कॉल अगर मैं सीधे कॉल करता हूं तो अवरोध करेगा, लेकिन असेंबली नहीं, मैं उसी विधि पर कॉल का परीक्षण कर रहा था? यदि मैं ऐसा करना चाहता था, तो मुझे उस असेंबली में अवरोध करना होगा जिसका मैं परीक्षण कर रहा हूं? - क्या आपके पास उन्नत उन्नत परिदृश्य उपलब्ध हैं? मुझे यह देखने में बहुत दिलचस्पी होगी। – pinvoke

+0

हां, यही वह है। मान लें कि आपके पास असेंबली ए और बी है, बी संदर्भ ए। ए और बी कॉल विधि थ्रेड। सो जाओ। प्रोजेक्ट बी के अंदर, आपने थ्रेड पर एक पहलू लगाया। सो जाओ। केवल बी से थ्रेड तक कॉल करता है। नींद को ए –

+0

से कॉल नहीं किया जाएगा और चूंकि आपको पी-इनवोक पसंद है, इसलिए पी-इनवॉक विधियों पर पहलुओं को भी रखना संभव है :)। –

संबंधित मुद्दे