C# 属性的代码生成失败。错误是无法将属性转换为InstanceDescriptor

来源:互联网 发布:魔力学堂源码 编辑:程序博客网 时间:2024/06/05 18:47

最近研究自定义控件,在控件中添加了自定义的结构属性之后,自定义控件就会报错,如下图:


网上有个高手说把 *.resx 文件中的<Data ...>...</Data>删除掉就行了。我试了一下,报错的确是没有了,但是我的控件的属性就变成NULL了,没有真正的解决此问题。又在网上查了很多资料,我觉得这个问题的关键就是我的结构属性。于是我又重新把结构属性的Converter类实现了一下,但是此报警依然存在。唉,快没招了。

抓耳挠腮弄了很久也没解决。于是就把这个问题搁置了,说不定等哪天灵感一到自然就解开了。但愿如此吧。

第二天我又重新打开这个项目,尝试了一下debug运行,结果什么错误都没有!真是奇怪了!!修改结构属性也能顺利改变属性的值,一点毛病没有。我又试着小小改动了一下控件,重新debug运行,结果报警又出来了。即使我把刚才修改的去除掉也没有恢复。静下来想了一下,感觉可能跟工程没有把属性更新到 *.resx文件中有关。重新关闭工程之后重启,报警又没有了。

这么棘手的问题就这么解决了。

要解决此问题首先要把结构属性的Converter类实现一下,然后在控件中添加此属性,此时生成一下工程,然后关闭项目,重新启动之后就好了。

阅读全文
0 0