在WebPartzone Zonetemplate中添加Web零件时,CLSCompliance解析器错误
-
16-10-2019 - |
题
我将Web零件直接添加到页面布局中的Zonetemplate中。
当我插入具有UINT类型的Web Part属性的自定义Web部件时,我会收到YSOD服务器错误:
解析器错误描述:解析服务此请求所需的资源时发生了错误。请查看以下特定解析错误详细信息,并适当修改源文件。解析器错误消息:“命中”的属性“ type” system.uint32”,不符合CLS。
减轻此错误的最简单方法是什么?
我可以将数据类型更改为INT,但这意味着更改大量代码和Web Part XML文件,并相应地更改错误处理和测试案例。由于该项目很大,因此在页面布局中的解决方法是最好的...
解决方案
我复制了错误,因为我也使用了UINT32。我从来没有将它们添加到区域模板中,而是使用了Web界面 - 虽然可以正常工作。
如果您检查错误堆栈,然后使用Reflector,则会将检查(propertymapper.istypeclscompliant)进行检查,即该属性不是UINT32(以及其他一些),因此我猜是没有解决方法。
解决方法是使用符合CLS的类型;对于UINT32,INT64最有效,并且可能不会对您的解决方案影响太大。
祝你好运!