Compartir a través de


CA1409: Los tipos visibles COM se deben poder crear

Nombre de tipo

ComVisibleTypesShouldBeCreatable

Identificador de comprobación

CA1409

Categoría

Microsoft.Interoperability

Cambio problemático

Poco problemático

Causa

Un tipo de referencia marcado específicamente como visible para el Modelo de objetos componentes (COM) contiene un constructor parametrizado público pero no contiene un constructor (sin parámetros) predeterminado público.

Descripción de la regla

Un tipo sin un constructor predeterminado público no se puede crear mediante clientes COM. Sin embargo, los clientes COM aún pueden obtener acceso al tipo si está disponible otro medio para crear el tipo y pasarlo al cliente (por ejemplo, mediante el valor que se devuelve al llamar a un método).

La regla omite los tipos que se derivan de System.Delegate.

De manera predeterminada, son visibles para COM: ensamblados, tipos públicos, miembros de instancia públicos de tipos públicos y todos los miembros de tipos de valor públicos.

Cómo corregir infracciones

Para corregir una infracción de esta regla, agregue un constructor predeterminado público o quite System.Runtime.InteropServices.ComVisibleAttribute del tipo.

Cuándo suprimir advertencias

Es seguro suprimir una advertencia de esta regla si se proporcionan otras formas de crear y pasar el objeto al cliente COM.

Reglas relacionadas

CA1017: Marcar los ensamblados con ComVisibleAttribute

Vea también

Conceptos

Habilitar tipos de .NET para la interoperación

Otros recursos

Interoperar con código no administrado