असेंबली निर्भरताओं के बारे में एक सूक्ष्म बिंदु है जिसे मैं समझना चाहता हूं। Wrapper.dll < - - Project.dllएक अप्रयुक्त कन्स्ट्रक्टर इस मामले में असेंबली निर्भरता क्यों करता है?
Wrapper.dll में इस तरह के रूप में एक प्रकार है
SharpDX.dll <:
public class D3DWrapperTypeA {
//public D3DWrapperTypeA(SharpDX.Device device) {
//
//}
public D3DWrapperTypeA(IntPtr devicePointer) {
SharpDX.Device device = new SharpDX.Device(devicePointer);
// etc
}
}
मैं एक परियोजना है जो इतना की तरह एक कस्टम आवरण के माध्यम से SharpDX का उपयोग करता है
इस कक्षा में, यदि मैं टिप्पणी निर्माता को अनदेखा करता हूं, तो Project.dll को SharpDX.dll का संदर्भ देना चाहिए, भले ही यह कन्स्ट्रक्टर का उपयोग न करे।
हालांकि, मैं भी तो की तरह एक और आवरण प्रकार है:
public class WrapperTypeB {
public SharpDX.Device GetDevice(int adapter) {
// etc
}
public IntPtr GetDevicePointer(int adapter) {
return GetDevice(adapter).NativePointer;
}
}
और यहाँ है, जब तक मैं वास्तव में GetDevice विधि है कि एक SharpDX ऑब्जेक्ट का उपयोग नहीं करते, Project.dll की जरूरत नहीं है SharpDX.dll संदर्भित करने के लिए।
यह क्यों है कि एक अप्रयुक्त कन्स्ट्रक्टर जो SharpDX प्रकार का पैरामीटर लेता है, SharpDX पर निर्भरता का कारण बनता है, जबकि एक अप्रयुक्त विधि जो SharpDX प्रकार का पैरामीटर देता है?
ऐसा इसलिए नहीं है क्योंकि संकलन समय पर संकलक निर्भरता की आवश्यकता होती है जहां विधि निर्भरता केवल रनटाइम पर आवश्यक होती है? अगर मैं ईमानदार हूँ तो अनुमान लगाओ! – Liam