다음을 통해 공유


RuntimeHelpers.PrepareMethod 메서드

정의

CER(제약이 있는 실행 영역)에 포함하기 위해 메서드를 준비합니다.

오버로드

PrepareMethod(RuntimeMethodHandle)

CER(제약이 있는 실행 영역)에 포함하기 위해 메서드를 준비합니다.

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

지정된 인스턴스를 사용하여 CER(제약이 있는 실행 영역)에 포함하기 위해 메서드를 준비합니다.

PrepareMethod(RuntimeMethodHandle)

Source:
RuntimeHelpers.CoreCLR.cs
Source:
RuntimeHelpers.CoreCLR.cs
Source:
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 컴파일 시간에 공용 언어 런타임에는 일반적으로 가상 호출의 대상에 대한 충분한 정보가 없습니다. 따라서 런타임은 처음에 호출 그래프의 해당 세그먼트를 준비하지 않습니다. CER을 사용하는 코드에 CER이 실제로 입력되기 전에 언제든지 대상을 결정할 수 있는 충분한 지식이 있는 경우 를 호출 PrepareMethod(RuntimeMethodHandle) 하여 인수로 지정된 메서드에 루팅된 CER에 대해 일반적으로 수행되는 동일한 런타임 준비를 수행할 수 있습니다.

적용 대상

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Source:
RuntimeHelpers.CoreCLR.cs
Source:
RuntimeHelpers.CoreCLR.cs
Source:
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[]) 컴파일러에 대한 제네릭 지원을 제공할 수 있습니다. 공용 언어 런타임은 해당 형식 매개 변수가 참조 형식으로 인스턴스화될 때 제네릭 형식 매개 변수(메서드를 포함하는 클래스의 형식 매개 변수 또는 메서드 자체의 형식 매개 변수)가 있는 메서드에 루트된 제한된 실행 영역(CER)을 준비할 수 없습니다.

이 오버로드를 사용하여 특정 인스턴스화(예: 형식 배열)를 전달하고 클래스 형식 매개 변수(있는 경우)를 먼저 지정한 다음 메서드 형식 매개 변수(있는 경우)를 지정할 수 있습니다. 런타임은 메서드의 인스턴스화를 준비합니다. (사용하는 인스턴스화에 하나 이상의 참조 형식 매개 변수가 포함된 경우에만 필요합니다.) 따라서 제네릭 메서드(또는 제네릭 클래스의 비일반 메서드)에서 CER 스타일 try 절을 사용할 수 있으며 또는 다른 값 형식의 Int32 인스턴스화에서 안정적으로 작동합니다. 와 같은 String참조 형식을 인스턴스화하려면 CER 루트 메서드에서 명시적 PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) 메서드를 먼저 사용해야 합니다.

적용 대상