标记项目CLS Compliant中的所有类

Cyl*_*ric 2 .net cls-compliant

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

<Assembly: CLSCompliant(True)> 
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ris 7

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

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

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

本文也是一个非常好的概述,它是如何工作的,你需要做什么,以及你为什么要这样做.