Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis 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