Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта структура задает различные виды сведений о типе поля.
Синтаксис
Участники
dwKind
Значение из перечисления dwTYPE_KIND , определяющее способ интерпретации объединения.
type.typeMeta
[Только C++] Содержит структуру METADATA_TYPE , если dwKind есть TYPE_KIND_METADATA.
type.typePdb
[Только C++] Содержит структуру PDB_TYPE , если dwKind есть TYPE_KIND_PDB.
type.typeBuilt
[Только C++] Содержит структуру BUILT_TYPE , если dwKind есть TYPE_KIND_BUILT.
type.unused
Неиспользуемое заполнение.
type
Имя объединения.
unionmember
[только C#] Маршалируйте его в соответствующий тип структуры на dwKindоснове.
Замечания
Эта структура передается методу GetTypeInfo , в котором он заполняется. Интерпретация содержимого структуры зависит от dwKind поля.
Примечание.
[Только C++] Если dwKind равно TYPE_KIND_BUILT, необходимо освободить базовый объект IDebugField при уничтожении TYPE_INFO структуры. Это выполняется с помощью вызова метода typeInfo.type.typeBuilt.pUnderlyingField->Release().
[только C#] В следующей таблице показано, как интерпретировать unionmember член для каждого типа. В примере показано, как это делается для одного типа.
dwKind |
unionmember интерпретируется как |
|---|---|
TYPE_KIND_METADATA |
METADATA_TYPE |
TYPE_KIND_PDB |
PDB_TYPE |
TYPE_KIND_BUILT |
BUILT_TYPE |
Пример
В этом примере показано, как интерпретировать unionmember член TYPE_INFO структуры в C#. В этом примере показано интерпретация только одного типа (TYPE_KIND_METADATA), но остальные интерпретируются точно так же.
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));
}
}
}
}
Requirements
Заголовок: sh.h
Пространство имен: Microsoft.VisualStudio.Debugger.Interop
Сборка: Microsoft.VisualStudio.Debugger.Interop.dll