TYPE_INFO

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

语法

public struct TYPE_INFO {
   public uint   dwKind;
   public IntPtr unionmember;
};

成员

dwKind
dwTYPE_KIND枚举中的一个值,用于确定如何解释联合。

type.typeMeta
[仅限 C++]包含一个 METADATA_TYPE 结构(如果 dwKindTYPE_KIND_METADATA)。

type.typePdb
[仅限 C++]包含一个 PDB_TYPE 结构(如果 dwKindTYPE_KIND_PDB)。

type.typeBuilt
[仅限 C++]包含一个 BUILT_TYPE 结构(如果 dwKindTYPE_KIND_BUILT)。

type.unused
未使用的填充。

type
联合的名称。

unionmember
[仅限 C#]将此封送给基于 dwKind的相应结构类型。

注解

此结构将 传递到填充它的 GetTypeInfo 方法。 如何解释结构的内容基于 dwKind 字段。

注意

[仅限 C++]如果dwKindTYPE_KIND_BUILT等,则在销毁TYPE_INFO结构时需要释放基础 IDebugField 对象。 可以通过调用 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 C# 中结构的成员 TYPE_INFO 。 此示例仅显示解释一种类型(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

另请参阅