ArgumentException标识符''不符合CLS。序列化
我在调试这个问题时遇到了麻烦。ArgumentException标识符''不符合CLS。序列化
它现在已经发生了两次,现在正在运行的应用程序中,只有当程序在发布模式下运行时才会发生。该程序运行在调试模式下:-(
我得到ArgumentException的罚款时,我试图将对象序列我跟踪的第一个例外,当市以下变量连载到:
public SerializableDictionary<MyEnum1, SerializableDictionary<MyEnum2, Double>> my_collection;
我回避。通过用串置换MyEnum2,回避问题问题它然后在程序的总不同区域再次出现了这一次,当包含以下变量的对象被序列:
public SerializableDictionary<MyEnum1, MyObject> my_other_collection;
在两种情况下我” m使用Paul Welter的SerializableDictionary对象。我在程序以前的版本中使用过这个,并且从未遇到过这个问题。后者的例外情况如下:
System.ArgumentException: Identifier ' ' is not CLS-compliant.
Parameter name: ident
异常的完全转储可以pastebin
观看我已经在SO,但他们不认为在一些岗位上有符合CLS的警告/错误似乎不是同一个问题。我将不胜感激关于如何进一步调试此问题的一些提示,因为只有在发布模式下运行时才会发生异常,所以我的想法已经不多了!
您可能试图对不符合cls的字符进行编码,“'可能不是空格,但可能是不可打印的字符。
您的程序是否必须符合CLS?如果您愿意,您可以将标记和汇编视为不符合CLS。 (我不记得有多久,因为我已经有一段时间了,因为我需要这样做)
感谢您的建议。我在AssemblyInfo.cs中设置了'[assembly:CLSCompliant(false)]',但仍然有异常。该对象只包含双精度和整数变量,我无法看到非打印字符将来自哪里。 – th3hamburgler 2011-03-01 11:10:06
OMG ...我的生命5天已经浪费了这个错误。
另一个dev已经添加eazfuscator到整个应用程序。我删除了由eazfuscator插入的post build event命令行,生活又恢复了良好。
显然,混淆和可序列化的类不是很好的组合!
有点晚,不是原来的海报,但无论如何。
我收到这个错误,因为我的公共财产的地方没有正确命名,他们不得不以大写字母开头。
可能值得一提的是,这只发生在开发版本时,因为我已经打开了“Warning as Error”警告。希望这有助于
它可以是一个编码问题?从哪里到哪里(德)序列化? – rene 2011-03-01 10:46:38