首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清除C#编译器警告CS3016:数组作为属性参数不符合CLS

清除C#编译器警告CS3016:数组作为属性参数不符合CLS
EN

Stack Overflow用户
提问于 2010-05-26 12:25:03
回答 2查看 2.4K关注 0票数 5

可能重复:

‘Arrays as attribute arguments is not CLS-compliant’ warning, but no type information given

我有一些代码,在几个地方生成这个警告。我想修复它们,但是我不知道它们在哪里,因为C#编译器没有报告错误行(有一个开放的MS问题)。

有没有一个工具,可以告诉我问题代码在哪里?IL级工具很好,知道方法的名称和声明类型是足够好的。

EN

回答 2

Stack Overflow用户

发布于 2010-05-26 12:35:34

您已经声明了一个类,如:

代码语言:javascript
运行
复制
[SomeAttribute(new string[] { "foo", "bar" })
class SomeClass { }

或者声明了如下属性:

代码语言:javascript
运行
复制
class SomeAttribute : Attribute
{
    public SomeAttribute(string[] arr) { } // or another array
}

这一切之所以发生,是因为您的程序集被标记为CLSCompliant:

[assembly:CLSCompliant(true)]

票数 3
EN

Stack Overflow用户

发布于 2010-05-26 12:54:55

我将采用以下程序:

  • 标识其构造函数中有数组的属性(这显然取决于从属性派生的类有多少)
  • 在属性类构造函数上使用Visual“查找所有引用”选项来查找使用数组装饰的属性。

如果在解决方案中定义了所讨论的属性,那么第一部分应该相当容易。

如果属性来自依赖项,那么您可能需要使用regex搜索来查找使用这些属性的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2912861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档