Share via


DkmClrValue 类

定义

CLR 检查查询生成的值。 结果格式化程序使用这些值来生成 DkmEvaluationResults。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

public ref class DkmClrValue : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("8186570c-2529-edb5-ef0b-4e485f902e89")]
public class DkmClrValue : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("8186570c-2529-edb5-ef0b-4e485f902e89")>]
type DkmClrValue = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmClrValue
Inherits DkmDataContainer
Implements IDisposable
继承
继承
DkmClrValue
属性
实现

属性

Access

访问控制级别 (评估结果) 公共、专用等。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

Address

[可选]如果结果是地址 (即在标志) 中设置地址标志,则指定支持值的位置。 当计算结果用作内存窗口或反汇编窗口的输入时,会使用此函数。 如果它是指令地址,则必须设置 CPUInstruction 地址。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

Alias

[可选]此值的别名。 如果尚未为对象分配别名,则此值将为 null。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

ArrayDimensions

[可选]数组的维度。 仅当此 DkmClrValue 是数组值时,此值才有效。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

ArrayLowerBounds

[可选]数组的下限。 仅当此 DkmClrValue 是数组值时,此值才有效。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

Category

此评估结果 (类别,例如:数据、方法等) 。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

EvalFlags

描述创建此 DkmClrValue 的评估结果的标志。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

HostObjectValue

[可选]如果 DkmClrValue 是可在调试器进程中表示的值,则此节点的值。 如果 DkmClrValue 是复杂类型,则此值将为 null。 当基础值为字符串时,请注意在本机代码中使用此字段:如果在本机代码中使用此字段,VARIANT 结构可能是 BSTR 或 IUnknown,应为 IDkmManagedStringRef 查询。 如果要在本机代码中创建此字段,请使用 BSTR 的 VARIANT。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

InspectionSession

InspectionSession 允许检查目标进程中数据的各种组件存储具有相同生存期的专用数据。 当用户尝试继续该过程时,检查会话将关闭。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

IsNull

如果值为 null (或) 没有值,则该属性值为 True。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

IsUnloaded

如果已为此对象引发“unloaded”事件,则返回 true (示例:DkmThread::Unload) 或对象已关闭。 请注意,检查此状态时必须小心,因为如果不进行同步,则返回的状态在读取指令后可能不再准确。

(继承自 DkmDataContainer)
Language

使用的语言。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

NativeComPointer

如果此值为 RCW,则为指向本机 COM 对象的接口指针。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

StackFrame

用作解释表达式的检查帧的堆栈帧。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

StorageType

存储类型 (例如:评估结果的静态) 。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

Type

[可选]此节点的运行时类型。 例如,System.String。 当值无效且无法确定类型时,此值为 null。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

TypeModifierFlags

类型修饰符标志 (ex:计算结果的 const) 。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

UniqueId

唯一标识此解释结果的 Guid。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

ValueFlags

描述此值的标志。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

方法

Close()

关闭 CLR 值以释放与之关联的资源。 此方法必须由请求求值查询的对象调用, (例如:名为 DkmCompiledClrInspectionQuery.Execute) 。

当其关联的 DkmInspectionSession 对象关闭时,DkmClrValue 对象会自动关闭。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

Create(DkmInspectionSession, DkmLanguage, DkmClrType, DkmEvaluationResultCategory, DkmEvaluationResultAccessType, DkmEvaluationResultStorageType, DkmEvaluationResultTypeModifierFlags, Boolean, Object, DkmStackWalkFrame, DkmEvaluationResultFlags, DkmClrValueFlags, UInt64, DkmDataAddress, String, ReadOnlyCollection<Int32>, ReadOnlyCollection<Int32>, DkmDataItem)

Create新的 DkmClrValue 对象实例。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

Dereference(DkmInspectionContext)

取消引用此指针值以获取基础值。 仅当 DkmClrValue 表示 Pointer 值时,才能使用此方法。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

EvaluateDebuggerDisplayString(DkmWorkList, DkmInspectionContext, DkmClrType, String, DkmCompletionRoutine<DkmEvaluateDebuggerDisplayStringAsyncResult>)

获取要在调试器 UI 中为给定 DebuggerDisplay 属性字符串的 CLR 值显示的字符串。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

EvaluateToString(DkmInspectionContext)

对给定 DkmClrValue 表示的对象执行 ToString 替代。 如果值的类型为 object 或未替代 ToString,则此方法将返回 null。 此方法需要启用函数评估。 如果用户或出于任何其他原因禁用函数评估,此方法将返回 null。 如果函数计算因任何原因而失败,此方法也将返回 null。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetArrayElement(Int32[], DkmInspectionContext)

获取数组元素。 仅当 DkmClrValue 表示数组值时,才能使用此方法。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetDataItem<T>()

获取已添加到此容器实例的“T”实例。 如果此容器不包含“T”,则此函数将返回 null。

(继承自 DkmDataContainer)
GetEditableValueString(DkmInspectionContext, DkmClrCustomTypeInfo)

获取要在 UI 中显示的给定 DkmClrValue 的可编辑值字符串。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 15 RTM (DkmApiVersion.VS15RTM) 中引入的。

GetMemberValue(String, Int32, String, DkmInspectionContext)

获取字段或属性的值作为 DkmClrValue。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetResult(DkmWorkList, DkmClrType, DkmClrCustomTypeInfo, DkmInspectionContext, ReadOnlyCollection<String>, String, String, DkmCompletionRoutine<DkmEvaluationAsyncResult>)

设置 DkmClrValue 的格式并返回 DkmEvaluationResult。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetUnderlyingString(DkmInspectionContext)

获取值的基础字符串表示形式。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetValueString(DkmClrCustomTypeInfo, DkmInspectionContext, ReadOnlyCollection<String>)

获取要在 UI 中显示的给定 DkmClrValue 的值字符串。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 15 RTM (DkmApiVersion.VS15RTM) 中引入的。

GetValueString(DkmInspectionContext, ReadOnlyCollection<String>)

获取要在 UI 中显示的给定 DkmClrValue 的值字符串。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

HasUnderlyingString(DkmInspectionContext)

确定此值是否具有基础字符串表示形式。 如果此方法返回 true,则用户可以使用字符串可视化工具在调试器中查看此值。 GetUnderlyingString 应返回基础字符串表示形式。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

InstantiateDynamicViewProxy(DkmInspectionContext)

实例化代理类,以用于循环访问 IDynamicMetaObjectProvider 值的动态成员。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

InstantiateProxyType(DkmInspectionContext, DkmClrType)

使用关联的 DebuggerTypeProxy 属性实例化 DkmClrValue 的代理类。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

InstantiateResultsViewProxy(DkmInspectionContext, DkmClrType)

实例化代理类以用于循环访问 IEnumerable 值。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

RemoveDataItem<T>()

从此容器中删除“T”的实例。 通常不需要调用此方法,因为数据容器将在对象关闭时自动清空。

(继承自 DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

将新项放在数据容器中。

(继承自 DkmDataContainer)

显式接口实现

IDisposable.Dispose()

内容待定。

适用于