Поделиться через


IAsyncVisualizerObjectProvider Интерфейс

Определение

Предоставляет асинхронную реализацию для методов, определенных в IVisualizerObjectProvider2 , которые предоставляют функциональные возможности для передачи данных отладочного объекта визуализатору и наоборот.

public interface IAsyncVisualizerObjectProvider : Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider2
type IAsyncVisualizerObjectProvider = interface
    interface IVisualizerObjectProvider2
    interface IVisualizerObjectProvider
Public Interface IAsyncVisualizerObjectProvider
Implements IVisualizerObjectProvider2
Реализации

Комментарии

ОбъектIVisualizerObjectProvider, передаваемый Show(IDialogVisualizerService, IVisualizerObjectProvider) в метод для VS 17.2 и более поздних версий, относится к DialogDebuggerVisualizerэтому типу, поэтому его следует привести к использованию этой новой функции.

Свойства

IsBinaryFormatterSupported

Указывает, поддерживает ли отладчик BinaryFormatter, так как он был нерекомендуем в .NET 5. Если это не так, поставщик чаще всего использует JSON для взаимодействия с визуализатором.

(Унаследовано от IVisualizerObjectProvider)
IsObjectReplaceable

Указывает, можно ли создать замещающий объект. То есть определяет, является ли визуализируемый объект данных заменяемым (чтение и запись) или невосполним (только для чтения).

(Унаследовано от IVisualizerObjectProvider)

Методы

Deserialize(Stream)
Устаревшие..

Устаревший вспомогательный метод, используемый старыми визуализаторами, который упрощает написание кода десериализации. Он использует бинарную сериализацию по умолчанию для считывания заданного объекта из потока. Однако из-за уязвимостей системы безопасности с его использованием он больше не должен использоваться и будет вызываться в более новых версиях .NET, таких как ASP.NET Core 5.0.

При вызове в целевом приложении, поддерживающем двоичную сериализацию, после завершения метода поток считывается и возвращается базовый объект.

(Унаследовано от IVisualizerObjectProvider2)
GetData()

Возвращает начальный большой двоичный объект данных об отлаживаемом объекте. Данные записываются в предоставленный 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)

Передает данные двунаправленно в метод TransferData в VisualizerObjectSource

(Унаследовано от IVisualizerObjectProvider)
TransferDeserializableObject(Object)

Сериализует исходящий объект, используя в качестве IDeserializableObject, а затем вызывает Метод TransferData. При возврате десериализует входящие данные и возвращает объект, заключенный в IDeserializableObject.

(Унаследовано от IVisualizerObjectProvider2)
TransferDeserializableObjectAsync(Object, CancellationToken)

Сериализует исходящий объект, используя в качестве IDeserializableObject, а затем вызывает асинхронную версию TransferData. При возврате десериализует входящие данные и возвращает объект, заключенный в IDeserializableObject.

TransferObject(Object)
Устаревшие..

Сериализует исходящий объект с помощью сериализации по умолчанию, а затем вызывает TransferData. При возврате десериализует входящие данные и возвращает десериализованный объект.

(Унаследовано от IVisualizerObjectProvider)

Применяется к