A marcação de todas as classes em um projeto Compatíveis com CLS
-
21-09-2019 - |
Pergunta
Se eu tenho um projeto e eu marcá-lo como
<Assembly: CLSCompliant(True)>
Preciso colocar CLSCompliant(True)
antes de todos classe no projeto, ou são todos padronizados para CLSCompliant?
Solução
Adicionar o atributo CLSCompliant no nível da montagem não muda as classes em que não faço as classes compatíveis com CLS. O que faz é forçar o compilador a aumentar qualquer coisa que não seja compatível como um erro. Ainda é sua responsabilidade garantir que as aulas não quebrem as regras.
Dito isto, porém, sim, ele filtra e afeta todas as classes na montagem sem a necessidade de adicioná -lo novamente a cada classe. Daqui:
Se nenhum atributo CLS for aplicado a um tipo, esse tipo se supõe ter a mesma conformidade com o CLS que a montagem em que o tipo é definido.
Este artigo também é uma visão geral bastante boa sobre como funciona, o que você precisa fazer e por que você pode querer fazê -lo.
Outras dicas
O que eu sei sobre CLSCompliant é, por padrão, a montagem não é compatível.Na minha opinião, nem todos os projetos precisam ser CLSCompliant.Projetos que são ferramentas ou bibliotecas, que estão indo para ser usado por outras aplicações devem ser CLSCompliant.Enquanto a construção Visual Studion Ferramentas para o Windows Live, que nós tivemos que fazer com que o nosso código não dar qualquer CLSCompliant erros ou avisos.