Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Essa estrutura especifica vários tipos de informações sobre o tipo de um campo.
Sintaxe
Membros
dwKind
Um valor da enumeração dwTYPE_KIND que determina como interpretar a união.
type.typeMeta
[Somente C++] Contém uma estrutura METADATA_TYPE se dwKind for TYPE_KIND_METADATA.
type.typePdb
[Somente C++] Contém uma estrutura PDB_TYPE se dwKind for TYPE_KIND_PDB.
type.typeBuilt
[Somente C++] Contém uma estrutura BUILT_TYPE se dwKind for TYPE_KIND_BUILT.
type.unused
Preenchimento não utilizado.
type
Nome do sindicato.
unionmember
[Somente C#] Marechal isso para o tipo de estrutura apropriada com base em dwKind.
Comentários
Essa estrutura é passada para o método GetTypeInfo, onde é preenchida. A forma como os conteúdos da estrutura são interpretados é baseada no dwKind campo.
Observação
[Somente C++] Se dwKind for TYPE_KIND_BUILTigual a , então é necessário liberar o objeto IDebugField subjacente ao destruir a TYPE_INFO estrutura. Isso é feito chamando typeInfo.type.typeBuilt.pUnderlyingField->Release().
[Somente C#] A tabela a seguir mostra como interpretar o unionmember membro para cada tipo de tipo. O exemplo mostra como isso é feito para um tipo de tipo.
dwKind |
unionmember interpretada como |
|---|---|
TYPE_KIND_METADATA |
METADATA_TYPE |
TYPE_KIND_PDB |
PDB_TYPE |
TYPE_KIND_BUILT |
BUILT_TYPE |
Exemplo
Este exemplo mostra como interpretar o unionmember TYPE_INFO membro da estrutura em C#. Este exemplo mostra a interpretação de apenas um tipo (TYPE_KIND_METADATA), mas os outros são interpretados exatamente da mesma maneira.
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));
}
}
}
}
Requisitos
Cabeçalho: sh.h
Espaço para nome: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll