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

Özellik Değer
Kural Kimliği CA1420
Başlık Özellik, tür veya öznitelik için çalışma zamanı hazırlama gerekir
Kategori Birlikte çalışabilirlik
Hataya neden olan veya bozulmayan düzeltme Yeni
.NET 8'de varsayılan olarak etkin Uyarı olarak

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 kuraldan bir uyarıyı gizlemeyin.

Örnek

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

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

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