CA1420: Properti, jenis, atau atribut memerlukan marshalling runtime

Properti Nilai
ID Aturan CA1420
Judul Properti, atribut, atau jenis memerlukan pemrograman marshaling pada waktu runtime
Kategori Interoperabilitas
Perbaikan bersifat merusak atau tidak merusak Merusak
Diaktifkan secara default di .NET 10 Sebagai peringatan
Bahasa yang berlaku C# dan Visual Basic

Penyebab

Fitur kode yang digunakan memerlukan marshalling runtime, namun marshalling runtime telah dinonaktifkan secara eksplisit.

Deskripsi aturan

Menggunakan fitur yang memerlukan marshalling runtime saat marshalling runtime dinonaktifkan akan mengakibatkan terjadi pengecualian runtime.

Cara memperbaiki pelanggaran

Aktifkan pemrosesan marshalling secara runtime atau hapus kode yang memerlukannya.

Kapan harus menekan peringatan

Jangan menekan peringatan dari aturan ini.

Contoh

Cuplikan kode berikut menunjukkan pelanggaran 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

Untuk memperbaiki pelanggaran, hapus DisableRuntimeMarshallingAttribute dari modul.