Aviso do compilador (nível 1) CS3018

'type' não pode ser marcado como compatível com CLS porque é um membro do tipo 'type' não compatível com CLS

Esse aviso ocorre se uma classe aninhada com o atributo CLSCompliant definido como true for declarada como membro de uma classe declarada com o atributo CLSCompliant definido como false. Isso não é permitido, uma vez que uma classe aninhada não pode ser compatível com CLS se for membro de uma classe externa que não seja compatível com CLS. Para resolver esse aviso, remova o atributo CLSCompliant da classe aninhada ou altere-o de true para false. Para obter mais informações sobre conformidade com CLS, consulte Independência de idioma e componentes independentes de idioma.

Exemplo

O exemplo a seguir gera CS3018.

// CS3018.cs  
// compile with: /target:library  
using System;  
  
[assembly: CLSCompliant(true)]  
[CLSCompliant(false)]  
public class Outer  
{  
   [CLSCompliant(true)]   // CS3018  
   public class Nested {}  
  
   // OK  
   public class Nested2 {}  
  
   [CLSCompliant(false)]  
   public class Nested3 {}  
}