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

<Assembly: CLSCompliant(True)> 

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

有帮助吗?

解决方案

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

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

如果没有将CLS属性应用于类型,则假定该类型具有与定义类型的组件相同的CLS依从性。

本文 还对它的工作原理、您需要做什么以及为什么要这样做进行了很好的概述。

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top