10

在编译我的解决方案时,我收到以下几个警告:

warning CS3016: Arrays as attribute arguments is not CLS-compliant

没有给出关于什么类型不合规的其他信息。在我的项目中,我有一些属性在其构造函数中采用 params 数组参数,但它们都是内部的,不应影响 CLS 合规性。为什么会给出这个警告,它是在什么类型上给出的?

4

3 回答 3

7

CS3016

如果您有一个将数组作为参数的属性并且项目被标记为CLSCompliant,您将收到此警告。

于 2009-10-28T14:56:01.223 回答
3

我今天遇到了这个。我出现了 4 个警告实例。然后我发现我在该程序集中拥有装饰 4 个公共方法的属性。当我一一删除它们时,错误一一消失。

此外,如果您对不符合 CLS 感到满意,则可以将 [CLSCompliant(false)] 放在用属性装饰的方法(或定义方法的类)上。把它放在有问题的属性构造函数/类上并不能解决问题。我想这是有道理的,因为最终该属性可能作为公共方法元数据的一部分暴露在程序集之外。

于 2010-12-09T17:37:36.830 回答
0

我遇到了同样的问题,我必须做的是使用 VS2010 中的“在文件中查找”对话框选择使用:通配符并在查找内容:文本框中输入

\[*\(*\)\]

这会生成所有属性实例的列表。一一进行,我能够识别并纠正警告。

于 2012-08-23T18:30:36.410 回答