CA1420: La propiedad, el tipo o el atributo requiere serialización en tiempo de ejecución
Propiedad | Value |
---|---|
Identificador de la regla | CA1420 |
Título | La propiedad, el tipo o el atributo requiere marshalling en tiempo de ejecución |
Categoría | Interoperabilidad |
La corrección es problemática o no problemática | Problemático |
Habilitado de forma predeterminada en .NET 9 | Como advertencia |
Causa
Se usa una característica de código que requiere serialización en tiempo de ejecución, y la serialización en tiempo de ejecución está deshabilitada explícitamente.
Descripción de la regla
El uso de características que requieren serialización en tiempo de ejecución cuando la serialización en tiempo de ejecución está deshabilitada producirá excepciones en tiempo de ejecución.
Cómo corregir infracciones
Habilite la serialización en tiempo de ejecución o quite el código que requiere serialización en tiempo de ejecución.
Cuándo suprimir las advertencias
No suprima las advertencias de esta regla.
Ejemplo
El siguiente fragmento de código muestra una infracción de la regla 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 corregir la infracción, quite DisableRuntimeMarshallingAttribute del ensamblado.