2012-06-10 8 views
5

मैं मोनो.सीसिल 0.9.5.3 का उपयोग कर रहा हूं, और वीएस2012 आरसी स्थापित करने के बाद (जो .NET 4.0 System.XML.DLL को अपने .NET 4.5 समकक्ष के साथ प्रतिस्थापित करने का कारण बनता है), मुझे एक सिस्टम मिलता है। कुछ कोड में ऑर्गमेंट अपवाद जो प्रत्येक विधियों के कस्टम विशेषताओं को दोहराता है। ऐसा प्रतीत होता है कि कुछ मामलों में, AsyncStateMachine विशेषता का ctor तर्क, जो एक प्रकार होना चाहिए, खाली है।मोनो। सेसिल अपवाद सिस्टम.एक्सएमएल डीएलएल के .NET 4.5 संस्करण का विश्लेषण करते समय फेंक दिया, क्यों?

कोड का निम्न भाग यह reproduces:

string path = Assembly.Load("System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089").Location; 

AssemblyDefinition systemXmlAssembly = AssemblyDefinition.ReadAssembly(path); 

var query = 

    from ModuleDefinition module in systemXmlAssembly.Modules 
    from TypeDefinition td in module.Types 
    from MethodDefinition method in td.Methods 
    from CustomAttribute att in method.CustomAttributes 
    where method.Name == "System.Xml.IDtdParser.ParseInternalDtdAsync" && 
      att.AttributeType.Name == "AsyncStateMachineAttribute" 
    select att; 

CustomAttribute attribute = query.Single(); 

var args = attribute.ConstructorArguments; // <---- this line throws an ArgumentException 

अपवाद से

Mono.Cecil.ModuleDefinition.CheckFullName(string fullName = "") 

फेंक दिया जाता है मेरा प्रश्न है - इस Mono.Cecil में एक बग, या System.Xml है। DLL? क्या spec ctor तर्क के रूप में प्रकट होने के लिए "खाली" प्रकार की अनुमति देता है?

उत्तर

10

सेसिल में एक बग की तरह लग रहा है, इस अर्थ में कि सेसिल को क्रैश किए बिना पढ़ना चाहिए।

क्या आप https://github.com/jbevain/cecil पर एक बग फ़ाइल कर सकते हैं और कहीं भी 4.5 System.XML.dll अपलोड कर सकते हैं? मैं फिर एक नज़र रखूंगा, और रिपोर्ट करूंगा कि यह एक वास्तविक सेसिल मुद्दा है, या System.XML में गलत तरीके से एन्कोडेड कस्टम विशेषता है।

अद्यतन:

यह वास्तव में सेसिल के साथ एक मुद्दा था। यह अब मास्टर में तय है। एक नया नुजेट पैकेज जारी होने तक आपको खुद को सेसिल बनाना होगा। धन्यवाद!

+0

हो गया, https://github.com/jbevain/cecil/issues/102 पर बहुत बहुत धन्यवाद! –

+0

@OmerRaviv तय, इस मुद्दे को दर्ज करने के लिए धन्यवाद! –

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