RuntimeHelpers.PrepareMethod Метод

Определение

Подготавливает метод к включению в область с ограничением исполнения (CER).

Перегрузки

PrepareMethod(RuntimeMethodHandle)

Подготавливает метод к включению в область с ограничением исполнения (CER).

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Подготавливает метод для включения в область с ограничением исполнения (CER) с указанной реализацией.

PrepareMethod(RuntimeMethodHandle)

Исходный код:
RuntimeHelpers.CoreCLR.cs
Исходный код:
RuntimeHelpers.CoreCLR.cs
Исходный код:
RuntimeHelpers.CoreCLR.cs

Подготавливает метод к включению в область с ограничением исполнения (CER).

public:
 static void PrepareMethod(RuntimeMethodHandle method);
public static void PrepareMethod (RuntimeMethodHandle method);
[System.Security.SecurityCritical]
public static void PrepareMethod (RuntimeMethodHandle method);
static member PrepareMethod : RuntimeMethodHandle -> unit
[<System.Security.SecurityCritical>]
static member PrepareMethod : RuntimeMethodHandle -> unit
Public Shared Sub PrepareMethod (method As RuntimeMethodHandle)

Параметры

method
RuntimeMethodHandle

Дескриптор метода, который следует подготовить.

Атрибуты

Комментарии

Компиляторы используют метод для PrepareMethod(RuntimeMethodHandle) обработки виртуальных вызовов, выполняемых в ограниченной области выполнения (CER). Во время JIT-компиляции среда CLR обычно не располагает достаточной информацией о целевом объекте виртуального вызова. Поэтому среда выполнения изначально не подготавливает этот сегмент графа вызовов. Если код, использующий CER, обладает достаточными знаниями, чтобы определить целевой объект в любой момент времени до фактического ввода CER, он может вызвать для PrepareMethod(RuntimeMethodHandle) выполнения той же подготовки среды выполнения, которая обычно выполняется для cer с корнем метода, указанного в качестве аргумента.

Применяется к

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Исходный код:
RuntimeHelpers.CoreCLR.cs
Исходный код:
RuntimeHelpers.CoreCLR.cs
Исходный код:
RuntimeHelpers.CoreCLR.cs

Подготавливает метод для включения в область с ограничением исполнения (CER) с указанной реализацией.

public:
 static void PrepareMethod(RuntimeMethodHandle method, cli::array <RuntimeTypeHandle> ^ instantiation);
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[]? instantiation);
[System.Security.SecurityCritical]
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation);
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation);
static member PrepareMethod : RuntimeMethodHandle * RuntimeTypeHandle[] -> unit
[<System.Security.SecurityCritical>]
static member PrepareMethod : RuntimeMethodHandle * RuntimeTypeHandle[] -> unit
Public Shared Sub PrepareMethod (method As RuntimeMethodHandle, instantiation As RuntimeTypeHandle())

Параметры

method
RuntimeMethodHandle

Дескриптор метода, который следует подготовить.

instantiation
RuntimeTypeHandle[]

Экземпляр для передачи в метод.

Атрибуты

Комментарии

Вы можете предоставить поддержку универсальных шаблонов для компиляторов с помощью PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) метода . Среда CLR не может подготовить ограниченные области выполнения (CER), корневые элементы которых находятся в методе, который имеет параметры универсального типа (параметр типа в классе, содержательном методе, или в самом методе), если эти параметры типа создаются как ссылочные типы.

Эту перегрузку можно использовать для передачи определенного экземпляра (например, массива типов), задав сначала параметры типа класса (если таковые есть), а затем параметры типа метода (если таковые есть). Среда выполнения подготавливает экземпляр метода . (Это необходимо, только если используемые экземпляры содержат хотя бы один параметр ссылочного типа.) Таким образом, вы можете использовать предложение в стиле try CER в универсальном методе (или необщий метод в универсальном классе), и оно будет надежно работать с экземплярами или другими типами значений Int32 . Чтобы создать экземпляр ссылочных типов, таких как String, необходимо сначала использовать явный PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) метод в корневом методе CER.

Применяется к