Pergunta

Eu tenho um par de chatear os avisos do compilador para um app que eu portado do VB6 um tempo atrás sobre CLS-Compliance incluindo:

Name '_AnIdentifier' is not CLS-Compliant.
Type of parameter 'myType' is not CLS-Compliant.

Apesar disso, meu aplicativo parece funcionar muito bem do COM e clientes gerenciados. Tenho visto vários artigos descrevendo o que fazer para tornar o código compatível com CLS e eu provavelmente vai ir em frente e fazê-lo de qualquer maneira para se livrar dos avisos irritantes, mas estou curioso o que as desvantagens de não-CLS código compatível estão em prática termos? Quais as limitações é este imposting que eu ainda não descobriram?

Foi útil?

Solução

Basicamente, sua classe pode não ser acessível (ou podem agir estranhamente, como grandes números positivos sendo tratados como negativo), quando usado com algumas linguagens .NET. Eu não posso dizer que línguas elas possam ser.

Por exemplo, eu não acredito que uma língua é necessária para reconhecer um identificador que começa com um sublinhado. C # permite isso, então você está seguro lá, mas para outras línguas, "_AnIdentifier" pode ser escondido, ou ter um nome gerado pelo sistema.

Outras dicas

Já corri em problemas com ofuscação ferramentas de geração de código ofuscado incorreto quando o código que não é compatível com CLS é ofuscado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top