IVisualizerObjectProvider3 接口

定义

允许可视化工具调试器和调试对象端组件协调要使用的序列化机制,并提供将数据传递到调试对象端的其他功能,同时考虑 SelectedFormatterPolicy

public interface IVisualizerObjectProvider3 : Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider2
type IVisualizerObjectProvider3 = interface
    interface IVisualizerObjectProvider2
    interface IVisualizerObjectProvider
Public Interface IVisualizerObjectProvider3
Implements IVisualizerObjectProvider2
实现

属性

IsBinaryFormatterSupported

指定调试对象是否支持 BinaryFormatter,因为它已在 .NET 5 中弃用。 否则,提供程序最使用 JSON 来与可视化工具通信。

(继承自 IVisualizerObjectProvider)
IsObjectReplaceable

指定是否可以创建替换对象。 也就是说,确定可视化的数据对象是可替换 (读/写) 还是不可替代 (只读) 。

(继承自 IVisualizerObjectProvider)
SelectedFormatterPolicy

此类在序列化/反序列化信息时将使用的格式策略。

方法

Deserialize(Stream)
已过时.

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

如果在支持二进制序列化的目标应用上调用 ,则方法完成后,将读取流并返回基础对象。

(继承自 IVisualizerObjectProvider2)
DeserializeFromJson<T>(Stream, Object)

将 Newtonsoft.Json 格式的数据从指定的流反序列化为特定类型的对象。

GetData()

获取有关正在调试的对象的数据的初始 Blob。 数据将写入提供的 MemoryStream。

(继承自 IVisualizerObjectProvider)
GetDeserializableObject()

使用 GetData 获取数据,然后返回 IDeserializableObject,以便调用方可以在不支持默认序列化时使用 JSON 进行反序列化。

(继承自 IVisualizerObjectProvider2)
GetDeserializableObjectFrom(Stream)

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

(继承自 IVisualizerObjectProvider2)
GetObject()
已过时.

使用 GetData 获取数据,然后反序列化(假定已完成默认序列化)

(继承自 IVisualizerObjectProvider)
GetObject<T>()

使用 GetData() 获取数据,然后尝试将其反序列化为指定的类型。

ReplaceData(Stream)

基于给定的序列化数据创建 对象的替换副本。

(继承自 IVisualizerObjectProvider)
ReplaceObject(Object)

使用默认序列化序列化对象,然后使用 ReplaceData 设置数据

(继承自 IVisualizerObjectProvider)
Serialize(Object, Stream)

帮助程序方法,使编写序列化代码更加容易。

如果目标应用支持二进制序列化,它会借助 BinaryFormatter 类将对象序列化为流。 如果不受支持(在较新版本的 .NET 中就是这种情况),则默认以 JSON 格式序列化对象。

(继承自 IVisualizerObjectProvider2)
TransferData(Stream)

将数据双向传输到 VisualizerObjectSource 上的 TransferData 方法

(继承自 IVisualizerObjectProvider)
TransferDeserializableObject(Object)

使用 作为 IDeserializableObject 序列化传出对象,然后调用 TransferData。 返回时,将反序列化传入的数据,并返回包装在 IDeserializableObject 中的对象。

(继承自 IVisualizerObjectProvider2)
TransferObject(Object)
已过时.

使用默认序列化序列化传出对象,然后调用 TransferData。 返回时,将反序列化传入的数据并返回反序列化的对象

(继承自 IVisualizerObjectProvider)
TransferObject<T>(Object)

使用 序列化传出对象, SelectedFormatterPolicy 然后调用 TransferData(Stream)。 返回后,它会尝试反序列化传入的数据,并返回指定类型的 对象。

适用于