Marshal.GetITypeInfoForType(Type) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
nativeint
Ein Zeiger auf die ITypeInfo
-Schnittstelle für den t
-Parameter.
- Attribute
Ausnahmen
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 ITypeInfo
GetITypeInfoForType 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.