CA1420: Propriedade, tipo ou atributo requer empacotamento de tempo de execução
Property | valor |
---|---|
ID da regra | CA1420 |
Título | Propriedade, tipo ou atributo requer empacotamento de tempo de execução |
Categoria | Interoperabilidade |
A correção está quebrando ou não quebrando | Quebrando |
Habilitado por padrão no .NET 8 | Como aviso |
Motivo
É usado um recurso de código que requer empacotamento de tempo de execução e empacotamento de tempo de execução é explicitamente desabilitado.
Descrição da regra
O uso de recursos que exigem empacotamento de tempo de execução quando o empacotamento de tempo de execução estiver desabilitado resultará em exceções em tempo de execução.
Como corrigir violações
Habilite o empacotamento de tempo de execução ou remova o código que requer o empacotamento de tempo de execução.
Quando suprimir avisos
Não suprima um aviso desta regra.
Exemplo
O trecho de código a seguir mostra uma violação de CA1420:
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
[assembly: DisableRuntimeMarshalling]
class C
{
// Violates rule CA1420.
[DllImport("NativeLibrary", SetLastError = true)]
public static extern void MyMethod ();
}
Imports System.Runtime.InteropServices
Imports System.Runtime.CompilerServices
<Assembly: DisableRuntimeMarshalling>
Class C
' Violates rule CA1420.
<DllImport("NativeLibrary", SetLastError:=True)>
Public Shared Sub MyMethod()
'...
End Sub
End Class
Para corrigir a violação, remova o DisableRuntimeMarshallingAttribute na montagem.