VisualizerObjectSource 类

定义

提供对正在可视化的对象的访问权限。
对此类进行子类化以提供自定义功能。

public ref class VisualizerObjectSource
[Windows::Foundation::Metadata::WebHostHidden]
class VisualizerObjectSource
public class VisualizerObjectSource
type VisualizerObjectSource = class
Public Class VisualizerObjectSource
继承
VisualizerObjectSource

示例

[assembly: System.Diagnostics.DebuggerVisualizer(  
   typeof(MyFirstVisualizer.DebuggerSide),  
   // The object source is specified on the next line <<<<<  
   typeof(VisualizerObjectSource),  
   Target = typeof(System.String),  
   Description = "My First Visualizer")]  

注解

可视化工具是 Visual Studio 调试器用来显示 (以有意义的方式 可视化) 特定数据类型的对象的小程序。 为了可视化对象,可视化工具使用调试器进程 (调试器端) 运行的代码,并在调试 对象端) (调试过程中运行的代码。

调试器端和调试对象端使用 VisualizerObjectSource 和 IVisualizerObjectProvider相互通信。

调试方使用 DebuggerVisualizerAttribute 为调试器端指定 VisualizerObjectSource 对象。 调试器端可以通过 接口间接访问它 IVisualizerObjectProvider

构造函数

VisualizerObjectSource()

提供对正在可视化的对象的访问权限。
对此类进行子类化以提供自定义功能。

属性

IsBinaryFormatterSupported

如果托管可视化工具的调试对象进程支持 Binary Formatter 类,则返回 true。 如果不是这种情况,则从此类派生的类应通过 JSON 序列化其对象。

SelectedFormatterPolicy

此类在序列化/反序列化信息时要使用的格式策略。 但是,在不支持所选格式策略的情况下,调试器可以重写它。

方法

CreateReplacementObject(Object, Stream)

创建并返回基于序列化数据传入的 对象的替换对象。

Deserialize(Stream)
已过时.

旧可视化工具使用的旧版帮助程序方法使编写序列化代码更加容易。 它使用默认的二进制序列化从流中读取给定的对象。 但是,由于其使用存在安全漏洞,因此不应再使用它,并且会在较新版本的 .NET(如 ASP.NET Core 5.0)上引发。

如果在支持二进制序列化的目标应用上调用,在方法完成之后,流读取指针将超过 对象的字节

DeserializeFromJson(Stream, Type, Object)

使用 Newtonsoft.Json 库将指定流中 JSON 格式的数据反序列化为特定类型的对象。

DeserializeFromJson<T>(Stream, Object)

使用 Newtonsoft.Json 库将指定流中 JSON 格式的数据反序列化为特定类型的对象。

GetData(Object, Stream)

获取数据的 Blob。 将数据从 对象写入内存流。

GetDeserializableObject(Stream)

可用于在目标应用可能不支持二进制序列化的情况下获取可反序列化对象的帮助程序方法。 在这些情况下,应使用 JSON 序列化基础格式,以便调用方可以查询各个属性以确定要反序列化的对象类型。

Serialize(Stream, Object)

将指定的 对象序列化为流。

默认情况下,将通过 使用二进制序列化对对象进行序列化 BinaryFormatter。 但是,如果目标应用不支持二进制序列化 (ASP.NET Core 5.0+ 应用程序) ,该方法将使用可用的任何 JSON 序列化技术序列化对象。

进程外可视化工具不支持二进制序列化。 因此,此方法将始终使用 Newtonsoft.Json 库对其进行序列化。

SerializeAsJson(Stream, Object, Object)

使用 Newtonsoft.Json 库将指定的对象作为 JSON 序列化到流中。

TransferData(Object, Stream, Stream)

当 UI 端可视化工具类型调用 IVisualizerObjectProvider.TransferData (Stream) 或 IVisualizerObjectProvider.TransferObject (对象) 时调用。

此方法可用于定义传递协议的自定义消息,以在 UI 端和调试对象端可视化工具类型之间进行通信,或对调试对象端可视化工具类型调用自定义操作。 UI 端可视化工具类型可以传入序列化为 incomingData 的任意数据,调试对象端可视化工具类型可以使用序列化为 的 outgoingData任意数据进行响应。

适用于