Marshal.GetITypeInfoForType(Type) Método

Definição

Retorna uma interface ITypeInfo de um tipo gerenciado.Returns a ITypeInfo interface from a managed type.

public:
 static IntPtr GetITypeInfoForType(Type ^ t);
[System.Security.SecurityCritical]
public static IntPtr GetITypeInfoForType (Type t);
static member GetITypeInfoForType : Type -> nativeint
Public Shared Function GetITypeInfoForType (t As Type) As IntPtr

Parâmetros

t
Type

O tipo cuja interface ITypeInfo está sendo solicitada.The type whose ITypeInfo interface is being requested.

Retornos

Um ponteiro para a interface ITypeInfo para o parâmetro t.A pointer to the ITypeInfo interface for the t parameter.

Atributos

Exceções

t não é um tipo visível para COM.t is not a visible type to COM.

- ou --or- t é um tipo Tempo de Execução do WindowsWindows Runtime.t is a Tempo de Execução do WindowsWindows Runtime type.

Uma biblioteca de tipos é registrada para o assembly que contém o tipo, mas não é possível localizar a definição de tipo.A type library is registered for the assembly that contains the type, but the type definition cannot be found.

Exemplos

O exemplo a seguir demonstra como recuperar um ponteiro para a interface ITypeInfo para um tipo usando o método GetITypeInfoForType.The following example demonstrates how to retrieve a pointer to the ITypeInfo interface for a type using the GetITypeInfoForType method.

using System;
using System.Runtime.InteropServices;

class Program
{

    static void Run()
    {
        Console.WriteLine("Calling Marshal.GetITypeInfoForType...");

        // Get the ITypeInfo pointer for an Object type
        IntPtr pointer = Marshal.GetITypeInfoForType(typeof(object));

        Console.WriteLine("Calling Marshal.Release...");

        // Always call Marshal.Release to decrement the reference count.
        Marshal.Release(pointer);
    }

    static void Main(string[] args)
    {
        Run();
    }
}
Imports System.Runtime.InteropServices

Module Program


    Sub Run()

        ' Dim a pointer
        Dim pointer As IntPtr

        Console.WriteLine("Calling Marshal.GetIUnknownForObjectInContext...")

        ' Get the ITypeInfo pointer for an Object type
        pointer = Marshal.GetITypeInfoForType(Type.GetType("System.Object"))

        Console.WriteLine("Calling Marshal.Release...")

        ' Always call Marshal.Release to decrement the reference count.
        Marshal.Release(pointer)



    End Sub

    Sub Main(ByVal args() As String)

        Run()

    End Sub

End Module


Comentários

Esse método retorna um ponteiro para uma implementação de ITypeInfo com base no tipo original.This method returns a pointer to an ITypeInfo implementation that is based on the original type. Chamar um objeto com GetITypeInfoForType faz com que a contagem de referência seja incrementada no ponteiro da interface antes que o ponteiro seja retornado.Calling an object with GetITypeInfoForType causes the reference count to increment on the interface pointer before the pointer is returned. Sempre use Marshal.Release para decrementar a contagem de referência depois de terminar com o ponteiro.Always use Marshal.Release to decrement the reference count once you have finished with the pointer. Você pode aplicar o System.Runtime.InteropServices.MarshalAsAttribute para substituir o comportamento de marshaling de interoperabilidade padrão por esse marshaler personalizado.You can apply the System.Runtime.InteropServices.MarshalAsAttribute to replace standard interop marshaling behavior with this custom marshaler.

Segurança

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

Aplica-se a

Veja também