Бөлісу құралы:


CA1420: для свойства, типа или атрибута требуется маршаллирование во время выполнения

Свойство Значение
Идентификатор правила CA1420
Заголовок Для свойства, типа или атрибута требуется маршаллирование среды выполнения
Категория Совместимость
Исправление является критическим или не критическим Срочное
Включен по умолчанию в .NET 10 Как предупреждение
Применимые языки C# и Visual Basic

Причина

Используется функция кода, требующая маршаллинга среды выполнения, а маршаллирование среды выполнения явно отключено.

Описание правила

Использование функций, требующих маршаллинга среды выполнения при отключении маршаллинга среды выполнения, приведет к исключениям среды выполнения.

Устранение нарушений

Включите маршаллирование среды выполнения или удалите код, требующий маршаллирования среды выполнения.

Когда лучше отключить предупреждения

Не подавляйте предупреждение, связанное с этим правилом.

Пример

В следующем фрагменте кода показано нарушение 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

Чтобы исправить нарушение, удалите DisableRuntimeMarshallingAttribute из сборки.