TYPE_INFO

此结构指定各种有关字段类型的信息。

struct _tagTYPE_INFO_UNION {
   dwTYPE_KIND dwKind;
   union {
      METADATA_TYPE typeMeta;
      PDB_TYPE      typePdb;
      BUILT_TYPE    typeBuilt;
      DWORD         unused;
   } type;
} TYPE_INFO;
public struct TYPE_INFO {
   public uint   dwKind;
   public IntPtr unionmember;
};

参数

  • 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的相应 framework 类型。

备注

此结构传递给该方法的 IDebugField:: GetTypeInfo 方法。 结构的内容如何解释基于 dwKind 字段。

备注

只有 C++ [],如果 dwKind 等于 TYPE_KIND_BUILT,然后释放基础 IDebugField 对象是必要的,因为销毁 TYPE_INFO framework 的访问。这是通过调用 typeInfo.type.typeBuilt.pUnderlyingField->Release()完成。

[仅限于 c#] 下表显示如何解释每 unionmember 成员类型。 示例显示了如何为一种类型执行。

dwKind

解释了unionmember

TYPE_KIND_METADATA

METADATA_TYPE

TYPE_KIND_PDB

PDB_TYPE

TYPE_KIND_BUILT

BUILT_TYPE

示例

此示例演示如何解释 TYPE_INFO 结构的 unionmember 成员在 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));
            }
        }
    }
}

要求

标题:sh.h

命名空间:Microsoft.VisualStudio.Debugger.Interop

程序集:Microsoft.VisualStudio.Debugger.Interop.dll

请参见

参考

结构和联合

dwTYPE_KIND

IDebugField:: GetTypeInfo

METADATA_TYPE

PDB_TYPE

BUILT_TYPE