Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Property | Valor |
---|---|
ID da regra | CA1420 |
Título | A propriedade, o tipo ou o atributo requerem marshaling de runtime |
Categoria | Interoperabilidade |
Correção interruptiva ou sem interrupção | Quebra |
Habilitado por padrão no .NET 9 | Como aviso |
Causa
Um recurso de código é usado que requer marshaling de runtime e o marshaling de runtime está explicitamente desabilitado.
Descrição da regra
O uso de recursos que exigem marshaling em runtime quando o marshaling de runtime está desabilitado resulta em exceções de runtime.
Como corrigir violações
Habilite o marshaling de runtime ou remova o código que requer marshaling de runtime.
Quando suprimir avisos
Não suprima um aviso nessa regra.
Exemplo
O seguinte snippet de código 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 no assembly.