DynamicILInfo Classe

Definição

Fornece suporte para formas alternativas de gerar a linguagem intermédia Microsoft (MSIL) e metadados para um método dinâmico, incluindo métodos para criar tokens e para inserir código, gestão de exceções e blobs de assinatura local de variáveis.

public ref class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
type DynamicILInfo = class
Public Class DynamicILInfo
Herança
DynamicILInfo
Atributos

Observações

A DynamicILInfo classe permite aos programadores escrever os seus próprios geradores MSIL em vez de usar ILGenerator.

Para criar instâncias de outros tipos, métodos de chamada, etc., o MSIL que gera deve incluir tokens para essas entidades. DynamicILInfo classe fornece várias sobrecargas do método GetTokenFor, que retornam tokens válidos no âmbito do DynamicILInfo atual. Por exemplo, se precisar de chamar uma sobrecarga do método Console.WriteLine, pode obter um RuntimeMethodHandle para essa sobrecarga e passá-lo para o método GetTokenFor para obter um token para incorporar no seu MSIL.

Depois de criar Byte arrays para a assinatura local de variáveis, exceções e o corpo de código, pode usar os SetCode, SetExceptions e SetLocalSignature métodos para os inserir no DynamicMethod associado ao seu DynamicILInfo objecto.

Gerar os seus próprios metadados e MSIL requer familiaridade com a documentação da Infraestrutura de Linguagem Comum (CLI), especialmente com a "Partition II: Metadata Definition and Semantics" e a "Partition III: CIL Instruction Set". Para mais informações, consulte ECMA 335 Common Language Infrastructure (CLI).

Note

Não use DynamicILInfo para gerar código que crie um delegado para outro método dinâmico chamando diretamente o construtor de delegados. Em vez disso, use o CreateDelegate método para criar o delegado. Um delegado criado com o construtor delegado não tem referência ao método dinâmico alvo. O método dinâmico pode ser recuperado por recolha de lixo enquanto o delegado ainda está em uso.

Propriedades

Name Description
DynamicMethod

Obtém o método dinâmico cujo corpo é gerado pela instância atual.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetTokenFor(Byte[])

Obtém um token, válido no âmbito da corrente DynamicILInfo, representando a assinatura do método dinâmico associado.

GetTokenFor(DynamicMethod)

Obtém um token, válido no âmbito da corrente DynamicILInfo, representando um método dinâmico a ser chamado a partir do método associado.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Recebe um token, válido no âmbito da corrente DynamicILInfo, representando um campo a ser acedido a partir do método dinâmico associado; o campo está no tipo genérico especificado.

GetTokenFor(RuntimeFieldHandle)

Obtém um token, válido no âmbito da corrente DynamicILInfo, representando um campo a ser acedido pelo método dinâmico associado.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Obtém um token, válido no âmbito da corrente DynamicILInfo, representando um método num tipo genérico.

GetTokenFor(RuntimeMethodHandle)

Obtém um token, válido no âmbito da corrente DynamicILInfo, representando um método a ser acedido a partir do método dinâmico associado.

GetTokenFor(RuntimeTypeHandle)

Recebe um token, válido no âmbito da corrente DynamicILInfo, representando um tipo a ser usado no método dinâmico associado.

GetTokenFor(String)

Recebe um token, válido no âmbito da corrente DynamicILInfo, representando um literal de string a ser usado no método dinâmico associado.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
SetCode(Byte[], Int32)

Define o corpo do código do método dinâmico associado.

SetCode(Byte*, Int32, Int32)

Define o corpo do código do método dinâmico associado.

SetExceptions(Byte[])

Define os metadados de exceção para o método dinâmico associado.

SetExceptions(Byte*, Int32)

Define os metadados de exceção para o método dinâmico associado.

SetLocalSignature(Byte[])

Define a assinatura local da variável que descreve a disposição das variáveis locais para o método dinâmico associado.

SetLocalSignature(Byte*, Int32)

Define a assinatura local da variável que descreve a disposição das variáveis locais para o método dinâmico associado.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a