Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | 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 из сборки.