Método Marshal.GetITypeInfoForType (Type)
Dica
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.
Retorna uma interface System.Runtime.InteropServices.ComTypes.ITypeInfo de um tipo gerenciado.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (em mscorlib.dll)
Sintaxe
[SecurityCriticalAttribute]
public static IntPtr GetITypeInfoForType(
Type t
)
public:
[SecurityCriticalAttribute]
static IntPtr GetITypeInfoForType(
Type^ t
)
[<SecurityCriticalAttribute>]
static member GetITypeInfoForType :
t:Type -> nativeint
<SecurityCriticalAttribute>
Public Shared Function GetITypeInfoForType (
t As Type
) As IntPtr
Parâmetros
t
Type: System.TypeO tipo cuja interface ITypeInfo está sendo solicitada.
Valor Retornado
Type: System.IntPtr
Um ponteiro para a interface ITypeInfo para o parâmetro t.
Exceções
Exception | Condition |
---|---|
ArgumentException | t não é um tipo visível para COM. -ou- t é um tipo Tempo de Execução do Windows. |
COMException | Uma biblioteca de tipos é registrada para o assembly que contém o tipo, mas não é possível localizar a definição de tipo. |
Comentários
Esse método retorna um ponteiro para um ITypeInfo implementação baseada no tipo original. Chamar um objeto com GetITypeInfoForType faz com que a contagem de referência incrementar o ponteiro de interface antes do ponteiro será retornado. Sempre use Marshal.Release para diminuir a contagem de referência quando tiver concluído com o ponteiro. Você pode aplicar o System.Runtime.InteropServices.MarshalAsAttribute para substituir o comportamento de marshaling de interoperabilidade padrão com este marshaler personalizado.
Exemplos
O exemplo a seguir demonstra como recuperar um ponteiro para o ITypeInfo interface para um tipo usando o GetITypeInfoForType método.
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
Segurança
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Informações de Versão
.NET Framework
Disponível desde 1.1
Confira Também
GetTypeForITypeInfo
MarshalAsAttribute
Classe Marshal
Namespace System.Runtime.InteropServices
Retornar ao início