ठीक है, तो मैं एक भौहें उठाए गए निम्नलिखित समस्या में भाग गया।असेंबली। गेटकॉलिंगएस्परब्स() और स्थैतिक रचनाकार?
विभिन्न कारणों से मेरे पास एक परीक्षण सेटअप है जहां TestingAssembly.dll में परीक्षण कक्षाएं बेसटेस्टिंग Assembly.dll में टेस्टिंगबेज क्लास पर निर्भर करती हैं। बातें TestBase इस बीच में करता है में से एक अपनी ही में एक निश्चित एम्बेडेड संसाधन और बुला विधानसभा
तो मेरी BaseTestingAssembly निहित निम्नलिखित लाइनों के लिए देखो है ...
public class TestBase {
private static Assembly _assembly;
private static Assembly _calling_assembly;
static TestBase() {
_assembly = Assembly.GetExecutingAssembly();
_calling_assembly = Assembly.GetCallingAssembly();
}
}
स्टेटिक के बाद से मैं लगा , ये असेंबली आवेदन के जीवनकाल पर समान होंगी, इसलिए हर एक परीक्षण पर उन्हें पुन: गणना क्यों करें।
यह चलते समय मैंने देखा कि दोनों _assembly और _calling_assembly को क्रमशः बेसटेस्टिंग एस्क्रिप्ल्स और टेस्टिंग एस्क्रिप्ट के बजाय बेसटेस्टिंग एस्परब्स पर सेट किया जा रहा था।
वैरिएबल को गैर स्थैतिक पर सेट करना और उन्हें नियमित कन्स्ट्रक्टर में प्रारंभ करना, लेकिन यह उलझन में है कि यह क्यों शुरू हुआ। मैंने सोचा कि स्थैतिक रचनाकार पहली बार एक स्थिर सदस्य को संदर्भित किया जाता है। यह केवल मेरे परीक्षण एस्प्लोर से हो सकता है जो तब कॉलर होना चाहिए था। क्या किसी को पता है कि क्या हो सकता है?
तो कॉलिंग असेंबली क्यों शून्य नहीं है? –
क्या यह अधिक उपयोगी होगा? :) –
नहीं, ऐसा लगता है कि यह समझ में आता है –