在编译我的解决方案时,我收到以下几个警告:
warning CS3016: Arrays as attribute arguments is not CLS-compliant没有给出关于哪种类型不符合的其他信息。在我的项目中,我有一些属性在它们的构造函数中接受params数组参数,但它们都是内部的,这不应该影响CLS遵从性。为什么会给出这个警告,它是在什么类型上发出的?
发布于 2009-10-28 22:56:01
如果您有一个以数组为参数的属性,并且项目被标记为CLSCompliant,您将收到此警告。
发布于 2010-12-10 01:37:37
我今天碰到了这个。我有4个警告出现的例子。然后我发现我在该程序集中使用了修饰4个公共方法的属性。随着我一个接一个地删除它们,错误一个接一个地消失了。
此外,如果您不同意不符合CLS,则可以将CLSCompliant(false)放在用属性修饰的方法(或定义方法的类)上。把它放在有问题的属性构造函数/类上并不能解决问题。我猜这是有意义的,因为最终该属性可能会作为公共方法的元数据的一部分在程序集外部公开。
发布于 2012-08-24 02:30:36
我遇到了同样的问题,我必须做的是在VS2010中使用“在文件中查找”对话框,选择“使用:通配符”,然后在“查找内容:”文本框中,输入
\[*\(*\)\]这将生成所有属性实例的列表。一个接一个地进行,我能够识别并更正警告。
https://stackoverflow.com/questions/1637764
复制相似问题