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 8 | 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.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de