Question

How do I disable CLS compliance checking?

How can I do it for:

  1. The entire assembly
  2. A smaller scope, maybe one file or one class...
Was it helpful?

Solution

You can use the CLSCompliant attribute to explicitly mark an assembly or type, e.g.

For an assembly, add the following line in AssemblyInfo.cs

[assembly: CLSCompliant(false)]

For a class

[CLSCompliant(false)]
public class Foo
{
}

You can also use it for specific type members (methods, properties, etc.) in a similar manner.

OTHER TIPS

You could use the [CLSCompliant(false)] attribute.

Quote from the doc:

You can apply the CLSCompliantAttribute attribute to the following program elements: assembly, module, class, struct, enum, constructor, method, property, field, event, interface, delegate, parameter, and return value. However, the notion of CLS compliance is only meaningful for assemblies, modules, types, and members of types, not parts of a member signature. Consequently, CLSCompliantAttribute is ignored when applied to parameter or return value program elements.

There's also possibility to supress compiler warnings.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top