मुझे एक बहुत ही अजीब समस्या है।"इंटरफ़ेस में गैर सार, गैर-.cctor-method" प्राप्त करने का कारण क्या है?
public interface IKreator2
{
string Name { get; set; }
string Description { get; set; }
INotifyPropertyChanged Settings { get; set; }
InfiniRenderJob Job { get; set; }
UserControl UI { get; set; }
void Init();
//void OnClose();
}
अगर मैं अपने WPF में इस dll से लिंक एप्लिकेशन लोड पर डीबगर दुर्घटनाओं: मैं एक अंतरफलक एक dll में परिभाषित के रूप में निम्नानुसार है (आंतरिक त्रुटि: डीबगर में बिना क्रिया के अपवाद :: HandleIPCEvent, आईडी = 0x246) । मैं के साथ "डिबग अप्रबंधित कोड" एप्लिकेशन को डिबग अगर मैं निम्न त्रुटियां मिलती है:
- प्रथम मौका अपवाद 0x76977945 InfiniRender.Host.exe में (KernelBase.dll) पर: माइक्रोसॉफ्ट C++ अपवाद: स्मृति पर EETypeLoadException स्थान 0x0029c5b8।
- में 0x76977945 (KernelBase.dll) पर पहला मौका अपवाद InfiniRender.Host.exe: माइक्रोसॉफ्ट सी ++ अपवाद: मेमोरी स्थान 0x00000000 पर [रीथ्रो]।
- ype 'System.TypeLoadException' का एक पहला मौका अपवाद InfiniRender.Host.exe
- में हुआ प्रकार 'System.TypeLoadException' की एक बिना क्रिया का अपवाद InfiniRender.Host.exe अतिरिक्त जानकारी में आई: Nicht abstrakte Nicht -इंटर Schnittstelle में -क्टर-मेथोड।
क्षण में मेरे पास बिल्कुल कोई संकेत नहीं है कि क्या हो रहा है। इंटरफ़ेस का एक इम्प्लांटेशन भी नहीं है और कोई कक्षा इसका उपयोग नहीं करती है। अगर मैं "इनिट" विधि को टिप्पणी करता हूं, तो सब कुछ अपेक्षित काम करता है। कोई विचार ??
[संपादित करें] यह वह जगह है इंटरफ़ेस init विधि के लिए MSIL:
.method public hidebysig newslot virtual
instance void Init() cil managed
{
// Code size 96 (0x60)
.maxstack 3
.locals init ([0] class [mscorlib]System.Exception CS$0$0__ex)
IL_0000: ldsfld class [NLog]NLog.Logger '<>z__LoggingImplementationDetails'::l14
IL_0005: callvirt instance bool [NLog]NLog.Logger::get_IsTraceEnabled()
IL_000a: brfalse.s IL_001b
IL_000c: ldsfld class [NLog]NLog.Logger '<>z__LoggingImplementationDetails'::l14
IL_0011: ldstr "Entering: InfiniRender.IKreator2.Init()"
IL_0016: call instance void [NLog]NLog.Logger::Trace(string)
.try
{
IL_001b: newobj instance void [mscorlib]System.NotSupportedException::.ctor()
IL_0020: throw
IL_0021: ldsfld class [NLog]NLog.Logger '<>z__LoggingImplementationDetails'::l14
IL_0026: callvirt instance bool [NLog]NLog.Logger::get_IsTraceEnabled()
IL_002b: brfalse.s IL_003c
IL_002d: ldsfld class [NLog]NLog.Logger '<>z__LoggingImplementationDetails'::l14
IL_0032: ldstr "Leaving: InfiniRender.IKreator2.Init()"
IL_0037: call instance void [NLog]NLog.Logger::Trace(string)
IL_003c: leave.s IL_005f
} // end .try
catch [mscorlib]System.Exception
{
IL_003e: ldsfld class [NLog]NLog.Logger '<>z__LoggingImplementationDetails'::l14
IL_0043: callvirt instance bool [NLog]NLog.Logger::get_IsWarnEnabled()
IL_0048: brfalse.s IL_005d
IL_004a: stloc.0
IL_004b: ldsfld class [NLog]NLog.Logger '<>z__LoggingImplementationDetails'::l14
IL_0050: ldstr "An exception occurred:\n{0}"
IL_0055: ldloc.0
IL_0056: call instance void [NLog]NLog.Logger::Warn(string,
object)
IL_005b: rethrow
IL_005d: leave.s IL_005f
} // end handler
IL_005f: ret
} // end of method IKreator2::Init
यह मुझे लगता है कि NLog इसके लिए जिम्मेदार है? आज तक एनएलओजी के साथ कभी भी कोई समस्या नहीं थी ...
उस इंटरफ़ेस के लिए कच्चे आईएल क्या कहता है? – thecoop
क्या आप कहीं रेपो अपलोड कर सकते हैं? – Simon
आप इस इंटरफ़ेस को * उपभोग कैसे कर रहे हैं? आप त्रुटियों को कुछ अप्रबंधित कोड का संकेत देते हैं। साथ ही, 'TypeLoadException' उदाहरण * इंटरफ़ेस * के कारण नहीं होने की संभावना से अधिक हैं, लेकिन कोड * * इंटरफ़ेस लागू करता है। – casperOne