Aracılığıyla paylaş


TYPE_INFO

Bu yapı, bir alanın türü hakkında çeşitli bilgi türlerini belirtir.

Sözdizimi

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

Üyeler

dwKind
dwTYPE_KIND numaralandırmasından birleşimin nasıl yorumlandığını belirleyen bir değer.

type.typeMeta
[Yalnızca C++] ise dwKind TYPE_KIND_METADATAbir METADATA_TYPE yapısı içerir.

type.typePdb
[Yalnızca C++] ise dwKind TYPE_KIND_PDBbir PDB_TYPE yapısı içerir.

type.typeBuilt
[Yalnızca C++] ise dwKind TYPE_KIND_BUILTbir BUILT_TYPE yapısı içerir.

type.unused
Kullanılmayan doldurma.

type
Birleşimin adı.

unionmember
[Yalnızca C# ] Bunu temelinde uygun yapı türüne göre sırala dwKind.

Açıklamalar

Bu yapı, doldurulduğu GetTypeInfo yöntemine geçirilir. Yapının içeriğinin nasıl yorumlandığı alanı temel dwKind alır.

Dekont

[Yalnızca C++] eşitse dwKind TYPE_KIND_BUILT, yapıyı yok ederken temel alınan IDebugField nesnesini serbest TYPE_INFO bırakmak gerekir. Bu işlem çağrılarak typeInfo.type.typeBuilt.pUnderlyingField->Release()yapılır.

[Yalnızca C# ] Aşağıdaki tabloda, her tür türü için üyenin nasıl yorumlur unionmember olduğu gösterilmektedir. Örnek, bunun bir tür için nasıl yapıldığını gösterir.

dwKind unionmember olarak yorumlanır
TYPE_KIND_METADATA METADATA_TYPE
TYPE_KIND_PDB PDB_TYPE
TYPE_KIND_BUILT BUILT_TYPE

Örnek

Bu örnek, C# dilinde yapının üyesini yorumlamayı unionmember TYPE_INFO gösterir. Bu örnekte yalnızca bir türün (TYPE_KIND_METADATA) yorumlanması gösterilmektedir, ancak diğerleri tam olarak aynı şekilde yorumlanır.

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));
            }
        }
    }
}

Gereksinimler

Üst bilgi: sh.h

Ad Alanı: Microsoft.VisualStudio.Debugger.Interop

Derleme: Microsoft.VisualStudio.Debugger.Interop.dll

Ayrıca bkz.