CA1420: propriedade, tipo ou atributo requer marshaling de runtime
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 8 | 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.
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.