다음을 통해 공유


DynamicILInfo 클래스

정의

토큰을 만들고 코드, 예외 처리 및 지역 변수 시그니처 blob을 삽입하는 메서드 등의 동적 메서드에 대한 MSIL(Microsoft Intermediate Language)과 메타데이터를 생성할 수 있는 다른 방법을 지원합니다.

public ref class DynamicILInfo sealed
public ref class DynamicILInfo
public sealed class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
type DynamicILInfo = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
Public NotInheritable Class DynamicILInfo
Public Class DynamicILInfo
상속
DynamicILInfo
특성

설명

DynamicILInfo 클래스를 사용하면 개발자가 를 사용하는 ILGenerator대신 고유한 MSIL 생성기를 작성할 수 있습니다.

다른 형식의 인스턴스를 만들고 메서드를 호출하려면 생성하는 MSIL에 해당 엔터티에 대한 토큰이 포함되어야 합니다. 클래스는 DynamicILInfo 현재 DynamicILInfoGetTokenFor scope 유효한 토큰을 반환하는 메서드의 여러 오버로드를 제공합니다. 예를 들어 메서드의 Console.WriteLine 오버로드를 호출해야 하는 경우 해당 오버로드에 대한 를 RuntimeMethodHandle 가져와서 메서드에 GetTokenFor 전달하여 MSIL에 포함할 토큰을 가져올 수 있습니다.

지역 변수 서명, 예외 및 코드 본문에 대한 배열을 만든 Byte 후에는 , SetExceptions및 메서드를 사용하여 SetCode개체와 SetLocalSignatureDynamicILInfo 연결된 에 DynamicMethod 삽입할 수 있습니다.

사용자 고유의 메타데이터 및 MSIL을 생성하려면 CLI(공용 언어 인프라) 설명서, 특히 "파티션 II: 메타데이터 정의 및 의미 체계" 및 "파티션 III: CIL 명령 집합"에 대해 잘 알고 있어야 합니다. 자세한 내용은 ECMA 335 CLI(공용 언어 인프라)를 참조하세요.

참고

를 사용하여 DynamicILInfo 대리자 생성자를 직접 호출하여 다른 동적 메서드에 대리자를 만드는 코드를 생성하지 마세요. 대신 메서드를 CreateDelegate 사용하여 대리자를 만듭니다. 대리자 생성자를 사용하여 만든 대리자에는 대상 동적 메서드에 대한 참조가 없습니다. 대리자를 계속 사용하는 동안 가비지 수집을 통해 동적 메서드를 회수할 수 있습니다.

속성

DynamicMethod

현재 인스턴스를 통해 본문이 생성되는 동적 메서드를 가져옵니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetTokenFor(Byte[])

현재 DynamicILInfo의 범위 내에 있고, 연결된 동적 메서드의 시그니처를 나타내는 토큰을 가져옵니다.

GetTokenFor(DynamicMethod)

현재 DynamicILInfo의 범위 내에 있고, 연결된 메서드에서 호출할 동적 메서드를 나타내는 토큰을 가져옵니다.

GetTokenFor(RuntimeFieldHandle)

현재 DynamicILInfo의 범위 내에 있고, 연결된 동적 메서드에서 액세스할 필드를 나타내는 토큰을 가져옵니다.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

현재 DynamicILInfo의 범위 내에 있고, 연결된 동적 메서드에서 액세스할 필드를 나타내는 토큰을 가져옵니다. 해당 필드는 지정된 제네릭 형식에 있습니다.

GetTokenFor(RuntimeMethodHandle)

현재 DynamicILInfo의 범위 내에 있고, 연결된 동적 메서드에서 액세스할 메서드를 나타내는 토큰을 가져옵니다.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

현재 DynamicILInfo의 범위 내에 있고, 제네릭 형식에 대한 메서드를 나타내는 토큰을 가져옵니다.

GetTokenFor(RuntimeTypeHandle)

현재 DynamicILInfo의 범위 내에 있고, 연결된 동적 메서드에서 사용할 형식을 나타내는 토큰을 가져옵니다.

GetTokenFor(String)

현재 DynamicILInfo의 범위 내에 있고, 연결된 동적 메서드에서 사용할 문자열 리터럴을 나타내는 토큰을 가져옵니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
SetCode(Byte*, Int32, Int32)

연결된 동적 메서드의 코드 본문을 설정합니다.

SetCode(Byte[], Int32)

연결된 동적 메서드의 코드 본문을 설정합니다.

SetExceptions(Byte*, Int32)

연결된 동적 메서드의 예외 메타데이터를 설정합니다.

SetExceptions(Byte[])

연결된 동적 메서드의 예외 메타데이터를 설정합니다.

SetLocalSignature(Byte*, Int32)

연결된 동적 메서드의 지역 변수 레이아웃을 설명하는 지역 변수 시그니처를 설정합니다.

SetLocalSignature(Byte[])

연결된 동적 메서드의 지역 변수 레이아웃을 설명하는 지역 변수 시그니처를 설정합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상