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


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()

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

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

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

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

(Унаследовано от IVisualizerObjectProvider2)
TransferObject(Object)
Устаревшие..

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

(Унаследовано от IVisualizerObjectProvider)
TransferObject<T>(Object)

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

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