Base type is not CLS-compliant, what reasons of this warning?

喜夏-厌秋 提交于 2019-12-18 18:37:16

问题


I have got warning from subject on one of my classes. Actually class is very simple, just an inheritor of my generic base type. Also I have some other inheritors from that generic class across the solution, and there are no such warnings.

What could be the reason(s) of this? Compiler does not give any clues of why base type is not CLS-compliant


回答1:


You probably have [assembly:CLSCompliant(true)] somewhere in that specific project. This triggers the compiler to check all types to be CLS compliant. You can override this for a type or method or something with [CLSCompliant(false)].




回答2:


I guess you have a derived type marked as CLSCompliant but the base isn't.

Writing CLS Compliant Code The canonical example is using a UInt32 which is not part of the Common Language Specification (CLS) - hence you need to use Int64 to be CLS compliant or remove the attribute (declare yourself non-cls compliant).

Need more code to identify the offending line of code. More info on the error you're getting.



来源:https://stackoverflow.com/questions/4013087/base-type-is-not-cls-compliant-what-reasons-of-this-warning

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!