Compartilhar via


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.Type

    O 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

SecurityCriticalAttribute

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