CA1413: Evitar los campos no públicos en tipos de valor visibles a través de COM
Elemento | Valor |
---|---|
RuleId | CA1413 |
Category | Microsoft.Interoperability |
Cambio importante | Problemático |
Causa
Un tipo de valor que se marca específicamente como visible para Component Object Model (COM) declara un campo de instancia no pública.
Descripción de la regla
Los campos de instancia no públicos de tipos de valor visibles para COM están visibles para los clientes COM. Revise el contenido de los campos para saber si hay información que no debería exponerse o que vaya a tener un efecto no deseado sobre la seguridad o el diseño.
De forma predeterminada, todos los tipos de valor público son visibles para COM. Sin embargo, para reducir los falsos positivos, esta regla requiere que se indique explícitamente la visibilidad COM del tipo. El ensamblado contenedor debe marcarse con System.Runtime.InteropServices.ComVisibleAttribute establecido en false
y el tipo debe marcarse con ComVisibleAttribute establecido en true
.
Cómo corregir infracciones
Para corregir una infracción de esta regla y mantener oculto el campo, cambie el tipo de valor por un tipo de referencia o quite el atributo ComVisibleAttribute del tipo.
Cuándo suprimir las advertencias
Es seguro suprimir una advertencia de esta regla si la exposición pública del campo es aceptable.
Ejemplo
En el ejemplo siguiente se muestra un tipo que infringe la regla.
using System;
using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
namespace InteroperabilityLibrary
{
[ComVisible(true)]
public struct SomeStruct
{
internal int SomeValue;
}
}
Reglas relacionadas
CA1407: Evitar los miembros estáticos en tipos visibles a través de COM
CA1017: Marcar los ensamblados con ComVisibleAttribute
Vea también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de