Marshal.GetITypeInfoForType(Type) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een ITypeInfo interface van een beheerd type.
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
Parameters
- t
- Type
Het type waarvan ITypeInfo de interface wordt aangevraagd.
Retouren
nativeint
Een aanwijzer naar de ITypeInfo interface voor de t parameter.
- Kenmerken
Uitzonderingen
Er is een typebibliotheek geregistreerd voor de assembly die het type bevat, maar de typedefinitie kan niet worden gevonden.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een aanwijzer naar de ITypeInfo interface voor een type ophaalt met behulp van de GetITypeInfoForType methode.
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
Opmerkingen
Deze methode retourneert een aanwijzer naar een ITypeInfo implementatie die is gebaseerd op het oorspronkelijke type. Als u een object aanroept, GetITypeInfoForType wordt het aantal verwijzingen verhoogd op de interfaceaanwijzer voordat de aanwijzer wordt geretourneerd. Gebruik Marshal.Release altijd om het aantal verwijzingen te verlagen zodra u klaar bent met de aanwijzer. U kunt het System.Runtime.InteropServices.MarshalAsAttribute toepassen om standaard interop marshaling gedrag te vervangen door deze aangepaste marshaler.