Marshal.GetITypeInfoForType(Type) Methode

Definitie

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

IntPtr

nativeint

Een aanwijzer naar de ITypeInfo interface voor de t parameter.

Kenmerken

Uitzonderingen

t is geen zichtbaar type voor COM.

– of –

t is een Windows Runtime type.

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.

Van toepassing op

Zie ook