Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
| Propriedade | valor |
|---|---|
| ID da regra | CA1420 |
| Título | Propriedade, tipo ou atributo requer empacotamento de tempo de execução |
| Categoria | Interoperabilidade |
| A correção causa interrupção ou não | Interrupção |
| Habilitado por padrão no .NET 10 | Como aviso |
| Línguas aplicáveis | C# e Visual Basic |
Motivo
É utilizado um recurso de código que requer marshalling em tempo de execução, mas o marshalling em tempo de execução é explicitamente desativado.
Descrição da regra
Usar funcionalidades que exijam marshalling em tempo de execução quando este está desativado resultará em exceções em tempo de execução.
Como corrigir violações
Ative a intermediação em tempo de execução ou remova o código que requer intermediação em tempo de execução.
Quando suprimir avisos
Não ignore ou suprima um aviso desta regra.
Exemplo
O trecho de código a seguir mostra uma violação de CA1420:
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[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.