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

Outros recursos

Interoperação com Código Não Gerenciado