IAsyncVisualizerObjectProvider 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 中 IVisualizerObjectProvider2 定义的方法提供异步实现,提供将数据从调试者传递到可视化工具的功能,反之亦然。
public interface IAsyncVisualizerObjectProvider : Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider2
type IAsyncVisualizerObjectProvider = interface
interface IVisualizerObjectProvider2
interface IVisualizerObjectProvider
Public Interface IAsyncVisualizerObjectProvider
Implements IVisualizerObjectProvider2
- 实现
注解
IVisualizerObjectProvider传递给 DialogDebuggerVisualizerShow(IDialogVisualizerService, IVisualizerObjectProvider) VS 17.2 的 方法的对象属于此类型,因此应将其强制转换为使用此新功能。
属性
IsBinaryFormatterSupported |
指定调试对象是否支持 BinaryFormatter,因为它在 .NET 5 中已弃用。 否则,提供程序大多使用 JSON 来与可视化工具通信。 (继承自 IVisualizerObjectProvider) |
IsObjectReplaceable |
指定是否可以创建替换对象。 也就是说,确定要可视化的数据对象是可替换的 (读/写) 还是不可替换的 (只读) 。 (继承自 IVisualizerObjectProvider) |
方法
Deserialize(Stream) |
已过时.
旧版可视化工具使用的旧帮助程序方法使编写反序列化代码更容易。 它使用默认二进制序列化从流中读取给定对象。 但是,由于其用法存在安全漏洞,因此不应再使用它,并且会引发较新版本的 .NET(如 ASP.NET Core 5.0)。 如果在支持二进制序列化的目标应用上调用,在 方法完成流读取后,我们将返回基础对象。 (继承自 IVisualizerObjectProvider2) |
GetData() |
获取有关正在调试的对象的初始数据 Blob。 数据将写入提供的 MemoryStream 中。 (继承自 IVisualizerObjectProvider) |
GetDeserializableObject() |
使用 GetData 获取数据,然后返回 IDeserializableObject,以便调用方可以使用 JSON 反序列化(如果不支持默认序列化)。 (继承自 IVisualizerObjectProvider2) |
GetDeserializableObjectAsync(CancellationToken) |
使用 GetData 的异步版本获取数据,然后返回 IDeserializableObject,以便调用方可以使用 JSON 反序列化(如果不支持默认序列化)。 |
GetDeserializableObjectFrom(Stream) |
在目标应用可能不支持二进制序列化的情况下,可用于获取可反序列化对象的帮助程序方法。 在这些情况下,应使用 JSON 序列化基础格式,以便调用方可以查询各个属性以确定要反序列化的对象类型。 (继承自 IVisualizerObjectProvider2) |
GetObject() |
已过时.
使用 GetData 获取数据,然后反序列化(假设已完成默认序列化) (继承自 IVisualizerObjectProvider) |
ReplaceData(Stream) |
基于给定的序列化数据创建 对象的替换副本。 (继承自 IVisualizerObjectProvider) |
ReplaceDataAsync(Stream, CancellationToken) |
基于异步给定的序列化数据创建对象的替换副本。 |
ReplaceObject(Object) |
使用默认序列化序列化对象,然后使用 ReplaceData 设置数据 (继承自 IVisualizerObjectProvider) |
Serialize(Object, Stream) |
帮助器方法,使编写序列化代码更容易。 如果目标应用支持二进制序列化,它会在 BinaryFormatter 类的帮助下将对象序列化到流中。 如果不支持这一点(在较新版本的 .NET 中是这样),则默认以 JSON 格式序列化对象。 (继承自 IVisualizerObjectProvider2) |
TransferData(Stream) |
将数据双向传输到 VisualizerObjectSource 上的 TransferData 方法 (继承自 IVisualizerObjectProvider) |
TransferDeserializableObject(Object) |
使用 作为 IDeserializableObject 序列化传出对象,然后调用 TransferData。 返回时,将反序列化传入的数据,并返回在 IDeserializableObject 中包装的对象。 (继承自 IVisualizerObjectProvider2) |
TransferDeserializableObjectAsync(Object, CancellationToken) |
使用 作为 IDeserializableObject 序列化传出对象,然后调用 TransferData 的异步版本。 返回时,将反序列化传入的数据,并返回在 IDeserializableObject 中包装的对象。 |
TransferObject(Object) |
已过时.
使用默认序列化序列化传出对象,然后调用 TransferData。 返回时反序列化传入的数据并返回反序列化的对象 (继承自 IVisualizerObjectProvider) |