CA1420: для свойств, типов или атрибутов требуется маршаллирование среды выполнения
Свойство | Значение |
---|---|
Идентификатор правила | CA1420 |
Заголовок | Для свойства, типа или атрибута требуется маршаллирование среды выполнения |
Категория | Совместимость |
Исправление является критическим или не критическим | Критическое |
Включен по умолчанию в .NET 9 | Как предупреждение |
Причина
Используется функция кода, требующая маршаллинга среды выполнения, а маршаллирование среды выполнения явно отключено.
Описание правила
Использование функций, требующих маршаллинга среды выполнения при отключении маршалинга среды выполнения, приведет к исключениям во время выполнения.
Устранение нарушений
Включите маршаллирование среды выполнения или удалите код, требующий маршалинг среды выполнения.
Когда лучше отключить предупреждения
Не подавляйте предупреждение из этого правила.
Пример
В следующем фрагменте кода показано нарушение 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
Чтобы устранить нарушение, удалите DisableRuntimeMarshallingAttribute сборку.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.