Pode uma montagem que inclui um não-compatíveis com CLS referência ser compatíveis com CLS?

StackOverflow https://stackoverflow.com/questions/4975589

  •  12-11-2019
  •  | 
  •  

Pergunta

Eu tenho uma DLL existente que não é compatível com CLS que eu de referência a partir do meu próprio projeto.Quando eu marcar a assembleia compatíveis com CLS, recebo os avisos do compilador que os nomes em assembly referenciado não são compatíveis com CLS.

Existe uma maneira que eu possa manter o meu assembleia compatíveis com CLS e marcar o referenciado como um não?

Foi útil?

Solução

Sim, a DLL pode ser compatíveis com CLS desde que não exponha qualquer uma não-compatíveis com CLS membros do assembly referenciado, isto é, não mencioná-lo em qualquer um dos seus próprios público ou protegido membros ou tipos.(Ele ainda pode usá-los em particular e de membros internos e tipos.)

Se a DLL não precisa expor tipos directamente a partir da não-conformidade DLL, você pode tentar encapsular os tipos em seu próprio wrappers (e.g.um método pode retornar um MyWrapperAroundNaughtyType em vez de um NaughtyType), ou você pode marcar os membros relevantes de sua API CLSCompliant(false) optar apenas os membros do compilador de verificação.

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