2

如果我有一个项目并将其标记为

<Assembly: CLSCompliant(True)> 

我需要在项目中的每个CLSCompliant(True)类之前放置,还是它们都默认为 CLSCompliant?

4

2 回答 2

7

在程序集级别添加 CLSCompliant 属性无论如何都不会更改类,因此不会使类符合 CLS。它的作用是强制编译器将任何不合规的内容作为错误引发。确保课程不违反规则仍然是您的责任。

尽管如此,是的,它确实会过滤并影响程序集中的所有类,而无需再次将其添加到每个类中。从这里

如果没有 CLS 属性应用于某个类型,则假定该类型与定义该类型的程序集具有相同的 CLS 合规性。

这篇文章也很好地概述了它的工作原理、您需要做什么以及为什么要这样做。

于 2009-11-20T10:10:35.703 回答
1

我对 CLSCompliant 的了解是,默认情况下您的程序集不兼容。在我看来,并非所有项目都需要符合 CLSCompliant。作为工具或库的项目将被其他应用程序使用,应该符合 CLS。在为 Windows Live 构建 Visual Studion 工具时,我们必须确保我们的代码没有给出任何 CLSCompliant 错误或警告。

于 2009-11-20T10:11:35.697 回答