CA1409: Tipos de visíveis com devem ser criados
TypeName |
ComVisibleTypesShouldBeCreatable |
CheckId |
CA1409 |
<strong>Categoria</strong> |
Microsoft.Interoperability |
Alteração significativa |
Não-separável |
Causa
Um tipo de referência especificamente está marcado como visível para o modelo de objeto componente (COM) contém um construtor parametrizado público, mas não tem um construtor público padrão (sem parâmetros).
Descrição da regra
Um tipo sem um construtor público padrão não pode ser criado por clientes COM. No entanto, o tipo ainda pode ser acessado por clientes COM se outro meio está disponível para criar o tipo e passá-lo para o cliente (por exemplo, por meio do valor de retorno de chamada do método).
A regra ignora tipos derivados de System.Delegate.
Por padrão, é visível para COM o seguinte: assemblies, tipos públicos, os membros de instância pública em tipos públicos e todos os membros de tipos de valor público.
Como corrigir violações
Para corrigir uma violação desta regra, um construtor público padrão de adicionar ou remover o System.Runtime.InteropServices.ComVisibleAttribute do tipo.
Quando suprimir avisos
É seguro eliminar um aviso esta regra se outras formas são fornecidas para criar e passar o objeto para o cliente COM.
Regras relacionadas
CA1017: Assemblies de marca com ComVisibleAttribute
Consulte também
Conceitos
Qualificação.NET tipos de interoperação