Derek, this is a very difficult and ambiguous statement to answer. CLSCompliant means that you are most likely creating a COM class that can be used to support disparate systems. We do this ourselves and have even added some CLSCompliant overloads in the framework where this is necessary. BUt let's look at it like this, if evey method and overload in the system was CLSCompliant, then we may as well not be programming in .NET. Let me elaborate. Let's assume that we create the following method:
Public Shared Function SaveBusinessObject(ByVal bo As BusinessLayer)
'-- Save this business object
bo.Save()
End Sub
This method has no hope of ever being CLS Compliant as no other disparate interface is going to know how to treat the BusinessLayer reference here. The closest that you could hope for would be to type this as an Object...thus 100% elimiating strong-typing and introducing a whole different set of issues.
We never claimed nor will ever claim to be 100% CLS Compliant because that would vastly limit and hobble the future of the framework.
Now, we create COM classes all of the time that are called from disparate systems. But when we do this, we create a single entry point and make THAT assembly CLS compliant for the methods that are going to be exposed. This is YOUR responsibility (or mine when I am writing application code) to make my application CLS compliant. So would create a class that interfaces with the disparate class like this:
Public Sub SaveBusinessObject(ByVal bo As Object)
DirectCast(bo, BusinessLayer).Save()
End Sub
This method is CLS compliant and will aide you in your external applications accessing this method with no CLSCompliant violations. If you want to create a CLS Compliant interface, this is going to have to be the responsiblity of the developer, not the framework. If we made SF 100% CLS Compliant, then it would be virtually useless as all strong-typing, generics, etc. would not be able to be exposed in a public (or inherited Proteceted) sense. It is designed in this capacity as it should be.
Hope this explanation helps.