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 сайтында табуға болады. Онда сонымен бірге мәселелер мен өзгертулерді енгізу сұрауларын жасауға және қарап шығуға болады. Қосымша ақпарат алу үшін қатысушы нұсқаулығын қараңыз.