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