标记项目CLS Compliant中的所有类

时间:2009-11-20 10:01:48

标签: .net cls-compliant

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

<Assembly: CLSCompliant(True)> 

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

2 个答案:

答案 0 :(得分:7)

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

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

  

如果没有应用CLS属性   类型,假定该类型具有   与装配中相同的CLS合规性   该类型的定义。

This article也是一个很好的概述,它是如何工作的,你需要做什么,以及你为什么要这样做。

答案 1 :(得分:1)

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