Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Diese Struktur gibt verschiedene Arten von Informationen über den Typ eines Felds an.
Syntax
Mitglieder
dwKind
Ein Wert aus der dwTYPE_KIND-Aufzählung , der bestimmt, wie die Union interpretiert wird.
type.typeMeta
[Nur C++] Enthält eine METADATA_TYPE Struktur, wenn dwKind dies der Wert ist TYPE_KIND_METADATA.
type.typePdb
[Nur C++] Enthält eine PDB_TYPE Struktur, wenn dwKind dies der Wert ist TYPE_KIND_PDB.
type.typeBuilt
[Nur C++] Enthält eine BUILT_TYPE Struktur, falls dwKind vorhanden.TYPE_KIND_BUILT
type.unused
Nicht verwendeter Abstand.
type
Name der Vereinigung.
unionmember
[Nur C#] Marshal this to the appropriate structure type based on dwKind.
Hinweise
Diese Struktur wird an die GetTypeInfo-Methode übergeben, in der sie ausgefüllt wird. Wie der Inhalt der Struktur interpretiert wird, basiert auf dem dwKind Feld.
Hinweis
[Nur C++] Wenn dwKind gleich TYPE_KIND_BUILT, ist es erforderlich, das zugrunde liegende IDebugField -Objekt freizugeben, wenn die TYPE_INFO Struktur zerstört wird. Hierzu wird typeInfo.type.typeBuilt.pUnderlyingField->Release() aufgerufen.
[Nur C#] In der folgenden Tabelle wird gezeigt, wie das unionmember Element für jede Art von Typ interpretiert wird. Das Beispiel zeigt, wie dies für eine Art von Typ erfolgt.
dwKind |
unionmember interpretiert als |
|---|---|
TYPE_KIND_METADATA |
METADATA_TYPE |
TYPE_KIND_PDB |
PDB_TYPE |
TYPE_KIND_BUILT |
BUILT_TYPE |
Beispiel
In diesem Beispiel wird gezeigt, wie das unionmember Element der TYPE_INFO Struktur in C# interpretiert wird. Dieses Beispiel zeigt, dass nur ein Typ (TYPE_KIND_METADATA) interpretiert wird, die anderen jedoch genau auf die gleiche Weise interpretiert werden.
using System;
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio.Debugger.Interop;
namespace MyPackage
{
public class MyClass
{
public void Interpret(TYPE_INFO ti)
{
if (ti.dwKind == (uint)enum_dwTypeKind.TYPE_KIND_METADATA)
{
METADATA_TYPE dataType = (METADATA_TYPE)Marshal.PtrToStructure(ti.unionmember,
typeof(METADATA_TYPE));
}
}
}
}
Anforderungen
Kopfzeile: sh.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll