Argument type 'type' is not CLS-compliant
A public or protected method cannot accept a parameter whose type is not compliant with the Common Language Subset (CLS).
The following sample generates CS3001:
[assembly:System.CLSCompliant(true)] public class a { public void bad(ushort i) { // CS3001 } private void OK(ushort i) { // OK, private method } public static void Main() { } }