RuntimeHelpers.PrepareMethod Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Prepara um método para inclusão numa região de execução restrita (CER).
Sobrecargas
| Name | Description |
|---|---|
| PrepareMethod(RuntimeMethodHandle) |
Prepara um método para inclusão numa região de execução restrita (CER). |
| PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) |
Prepara um método para inclusão numa região de execução restrita (CER) com a instanciação especificada. |
PrepareMethod(RuntimeMethodHandle)
Prepara um método para inclusão numa região de execução restrita (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)
Parâmetros
- method
- RuntimeMethodHandle
Uma abordagem ao método de preparação.
- Atributos
Observações
Os compiladores utilizam o PrepareMethod(RuntimeMethodHandle) método para lidar com chamadas virtuais feitas dentro de uma região de execução restrita (CER). No momento da compilação do JIT, o runtime da linguagem comum normalmente não tem informação suficiente sobre o destino de uma chamada virtual. Portanto, o tempo de execução não prepara inicialmente esse segmento do grafo de chamada. Se o código que está a usar a CER tiver conhecimento suficiente para determinar o alvo em qualquer momento antes de a CER ser efetivamente introduzida, pode convocar PrepareMethod(RuntimeMethodHandle) para realizar a mesma preparação em tempo de execução normalmente feita para uma CER enraizada no método especificado como argumento.
Aplica-se a
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])
Prepara um método para inclusão numa região de execução restrita (CER) com a instanciação especificada.
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);
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())
Parâmetros
- method
- RuntimeMethodHandle
Uma abordagem ao método de preparação.
- instantiation
- RuntimeTypeHandle[]
A instância para passar ao método.
- Atributos
Observações
Pode fornecer suporte de genéricos para compiladores usando o PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) método. O runtime de linguagem comum não pode preparar regiões de execução restritas (CERs) enraizadas num método que tenha parâmetros genéricos de tipo (seja um parâmetro de tipo na classe que contém o método ou outro no próprio método) quando esses parâmetros de tipo são instanciados como tipos de referência.
Pode usar esta sobrecarga para passar uma instância específica (como um array de tipos), especificando primeiro os parâmetros do tipo de classe (se existirem), seguidos pelos parâmetros do tipo de método (se existirem). O runtime prepara essa instância do método. (Isto só é necessário se as instâncias que utiliza contiverem pelo menos um parâmetro de tipo de referência.) Assim, pode usar uma cláusula ao estilo try CER num método genérico (ou um método não genérico numa classe genérica) e funcionará de forma fiável com instâncias de Int32 ou outros tipos de valor. Para instanciar tipos de referência como String, deve usar primeiro um método explícito PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) no método raiz CER.