Bagikan melalui


CA1420: Properti, jenis, atau atribut memerlukan marshalling runtime

Properti Nilai
ID Aturan CA1420
Judul Properti, jenis, atau atribut memerlukan marshalling runtime
Golongan Interoperabilitas
Perbaikan bersifat disruptif atau non-disruptif Merusak
Diaktifkan secara default di .NET 8 Sebagai peringatan

Penyebab

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

Deskripsi aturan

Menggunakan fitur yang memerlukan marshalling runtime saat marshalling runtime dinonaktifkan akan mengakibatkan pengecualian run-time.

Cara memperbaiki pelanggaran

Aktifkan marshalling runtime atau hapus kode yang memerlukan marshalling runtime.

Kapan harus menekan peringatan

Jangan menekan peringatan dari aturan ini.

Contoh

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

Untuk memperbaiki pelanggaran, hapus DisableRuntimeMarshallingAttribute pada rakitan.