CA1420: Özellik, tür veya öznitelik için çalışma zamanı marşhal etme gerekir

Özellik Değer
Kural Kimliği CA1420
Başlık Özellik, tür veya öznitelik çalışma zamanında dizileştirme gerektirir.
Kategori Birlikte çalışabilirlik
Düzeltme bozucu ya da bozmayan olabilir Son Dakika
.NET 10'da varsayılan olarak etkin Uyarı olarak
Geçerli diller C# ve Visual Basic

Neden

Çalışma zamanı hazırlama gerektiren bir kod özelliği kullanılır ve çalışma zamanı hazırlama açıkça devre dışı bırakılır.

Kural açıklaması

Çalışma zamanı hazırlama devre dışı bırakıldığında çalışma zamanı hazırlama gerektiren özelliklerin kullanılması çalışma zamanı özel durumlarına neden olur.

İhlalleri düzeltme

Çalışma zamanı hazırlamayı etkinleştirin veya çalışma zamanı hazırlama gerektiren kodu kaldırın.

Uyarıların ne zaman bastırılması gerekiyor?

Bu kurala ait bir uyarıyı gizlemeyin.

Örnek

Aşağıdaki kod parçacığı CA1420 ihlalini gösterir:

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

İhlali düzeltmek için, assembly üzerindeki DisableRuntimeMarshallingAttribute öğesini kaldırın.