.net 在usercontrol中使用集合时Resx无效

.net 在usercontrol中使用集合时Resx无效,.net,vb.net,winforms,.net,Vb.net,Winforms,我在vb.net winforms中创建了一个usercontrol,它的属性是Dictionary。我收到以下错误消息: 错误1无效的Resx文件。无法加载类型 System.Collections.Generic.Dictionary`2[[System.String,mscorlib, 版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089],[MIDAS.CheckedComboxItem,MIDAS, Version=1.0.0.0,Cul

我在vb.net winforms中创建了一个usercontrol,它的属性是Dictionary。我收到以下错误消息:

错误1无效的Resx文件。无法加载类型 System.Collections.Generic.Dictionary`2[[System.String,mscorlib, 版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089],[MIDAS.CheckedComboxItem,MIDAS, Version=1.0.0.0,Culture=neutral,PublicKeyToken=null]],mscorlib, 版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089 在.RESX文件中使用。确保提供必要的参考资料 已添加到您的项目中。第135行,位置 5.C:\Users\desig.nizam\documents\visual studio 2010\Projects\MIDAS\FGEO\FGEO.resx 135 5 MIDAS

我在某些表单中成功地使用了此控件,但在新表单中没有。如果我删除表单的控件,我可以编译而不会出错


我在谷歌上搜索了一个解决方案,可以找到很多相关主题,但没有一个能够帮助我解决问题。

解决此问题的方法是将此属性设置为Dictionary:

<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>

同样的问题已经在本报告中讨论过


这听起来像是设计师的序列化问题。字典中有什么,您能否显示将其作为属性公开的代码。。为什么要将字典与集合作为属性进行比较?这正是问题所在。该主题向我展示了这个问题的解决方案。您必须将字典更改为网络集合,而不是VB集合,然后将进入集合的内容序列化,主要是链接中提到的属性,也可能是类型转换器。问题是VS无法序列化它,因此它将信息存储在RESX文件(可能是Base64)中,但无法对其进行反序列化。