Question

Is there a tool that can analyse my .NET code (C# and VB.NET) and tell me why things are not CLS Compliant?

Visual Studio is happy to tell me a parameter is not CLS compliant, but it doesn't get me any closer to fixing the problem as I don't know the cause.

Example Visual Studio error:

Parameter 'xyz' is not CLS-Compliant

Was it helpful?

Solution

I can't say I know of a tool, and I tend to use the MSDN page Language Independence and Language-Independent Components to check if the type of the parameter/variable is CLS compliant. See the section of the table named 'Types'.

There was also a fair bit of discussion about this some time ago in the blog post FxCop and CLS Compliance.

OTHER TIPS

From memory it's not too hard to do. I'm not aware of a tool, but this page here describes what you need to change.

The big ones are using type specific structs (think uint32 instead of uint) and using an "_" in your public members.

Preemptive rebuttal: to my knowledge, FxCop does not support CLS compliance checks. Perhaps code analysis in VS does but I cannot check at work.

You could just google the warning message you get.

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