Evite campos não públicos em tipos de valor visível COM
TypeName |
AvoidNonpublicFieldsInComVisibleValueTypes |
CheckId |
CA1413 |
Category (Categoria) |
Microsoft.interoperabilidade |
Quebrando alterar |
Quebrando |
Causa
Um tipo de valor que está marcado sistema autônomo visível para com. especificamente declara um campo de instância não-públicos.
Descrição da regra
Campos de instância público que não são de tipos de valor visível COM são visíveis para clientes COM.Analise o conteúdo do campo de informações que devem ser expostas ou terão impacto de design ou de segurança não intencional.
Por padrão, todos os tipos de valor público estão visíveis para COM.No entanto, para reduzir os falsos positivos, essa regra requer a visibilidade de COM do tipo a ser declarado explicitamente, o assembly contendo deve ser marcado com o System.Runtime.InteropServices.ComVisibleAttribute definido como false o tipo deve ser com o ComVisibleAttribute definido como true.
Como corrigir violações
Para corrigir uma violação dessa regra e manter o campo ocultado, alterar o valor digite para um tipo de referência ou remover o ComVisibleAttribute atributo do tipo.
Quando suprimir avisos
É seguro eliminar um aviso essa regra se exposição pública do campo será aceitável.
Exemplo
O exemplo a seguir mostra um tipo que viola a regra.
Imports System
Imports System.Runtime.InteropServices
<Assembly: ComVisibleAttribute(False)>
Namespace InteroperabilityLibrary
<ComVisibleAttribute(True)> _
Public Structure SomeStructure
Friend SomeInteger As Integer
End Structure
End Namespace
using System;
using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
namespace InteroperabilityLibrary
{
[ComVisible(true)]
public struct SomeStruct
{
internal int SomeValue;
}
}
Regras relacionadas
Evitar membros estático em tipos visíveis com.
Marcar assemblies com ComVisibleAttribute
Consulte também
Conceitos
Qualificação tipos .NET para interoperação