Freigeben über


Marshal.GetITypeInfoForType(Type) Methode

Definition

Gibt eine ITypeInfo-Schnittstelle aus einem verwalteten Typ zurück.

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

Parameter

t
Type

Der Typ, dessen ITypeInfo-Schnittstelle angefordert wird.

Gibt zurück

IntPtr

nativeint

Ein Zeiger auf die ITypeInfo-Schnittstelle für den t-Parameter.

Attribute

Ausnahmen

t ist kein für COM sichtbarer Typ.

- oder -

t ist ein Windows-Runtime-Typ.

Für die Assembly, die den Typ enthält, wird eine Typbibliothek registriert, die Typdefinition kann jedoch nicht gefunden werden.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie mithilfe der -Methode ein Zeiger auf die ITypeInfoGetITypeInfoForType Schnittstelle für einen Typ abgerufen wird.

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

Hinweise

Diese Methode gibt einen Zeiger auf eine ITypeInfo Implementierung zurück, die auf dem ursprünglichen Typ basiert. Das Aufrufen eines -Objekts mit GetITypeInfoForType bewirkt, dass die Verweisanzahl auf dem Schnittstellenzeiger inkrementiert wird, bevor der Zeiger zurückgegeben wird. Verwenden Sie Marshal.Release immer, um die Verweisanzahl zu dekrementieren, sobald Sie mit dem Zeiger fertig sind. Sie können anwenden, um das System.Runtime.InteropServices.MarshalAsAttribute standardinterne Marshallverhalten durch diesen benutzerdefinierten Marshaller zu ersetzen.

Gilt für:

Weitere Informationen