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 debugee используется для указания объекта VisualizerObjectSource на стороне отладчика. Сторона отладчика имеет доступ к ней косвенно через IVisualizerObjectProvider интерфейс .
Конструкторы
VisualizerObjectSource() |
Предоставляет доступ к визуализируемым объектам. |
Свойства
IsBinaryFormatterSupported |
Возвращает значение true, если отладчик, в котором размещен визуализатор, поддерживает класс Binary Formatter. Если это не так, классы, производные от этого класса, должны сериализовать свои объекты с помощью JSON. |
SelectedFormatterPolicy |
Политика формата, которую этот класс намерен использовать при сериализации или десериализации информации. Однако отладчик может переопределить его в сценариях, где выбранная политика формата не поддерживается. |
Методы
CreateReplacementObject(Object, Stream) |
Создает и возвращает замещающий объект для переданного объекта на основе сериализованных данных. |
Deserialize(Stream) |
Устаревшие..
Устаревший вспомогательный метод, используемый старыми визуализаторами, который упрощает написание кода сериализации. Он использует бинарную сериализацию по умолчанию для считывания заданного объекта из потока. Однако из-за уязвимостей системы безопасности с его использованием он больше не должен использоваться и будет вызываться в более новых версиях .NET, таких как ASP.NET Core 5.0. При вызове в целевом приложении, поддерживающем двоичную сериализацию, после завершения метода указатель чтения потока будет расширен за байтами объекта. |
DeserializeFromJson(Stream, Type, Object) |
Десериализует данные в формате JSON из указанного потока в объект определенного типа с помощью библиотеки Newtonsoft.Json. |
DeserializeFromJson<T>(Stream, Object) |
Десериализует данные в формате JSON из указанного потока в объект определенного типа с помощью библиотеки Newtonsoft.Json. |
GetData(Object, Stream) |
Возвращает большой двоичный объект данных. Записывает данные из объекта в поток памяти. |
GetDeserializableObject(Stream) |
Вспомогательный метод, который можно использовать для получения десериализуемого объекта в случаях, когда целевое приложение может не поддерживать двоичную сериализацию. В таких случаях базовый формат следует сериализовать с помощью JSON, чтобы вызывающие объекты могли запрашивать отдельные свойства, чтобы определить тип объекта, который требуется десериализовать. |
Serialize(Stream, Object) |
Сериализует указанный объект в поток. По умолчанию объекты сериализуются с помощью двоичной сериализации через BinaryFormatter. Однако если целевое приложение не поддерживает двоичную сериализацию (как в случае с приложениями ASP.NET Core 5.0 и более поздних версий), метод сериализует объект с помощью любой доступной технологии сериализации JSON. Двоичная сериализация не поддерживается в визуализаторах вне процесса. Поэтому этот метод всегда сериализует их с помощью библиотеки Newtonsoft.Json. |
SerializeAsJson(Stream, Object, Object) |
Сериализует указанный объект в виде JSON в поток с помощью библиотеки Newtonsoft.Json. |
TransferData(Object, Stream, Stream) |
Вызывается, когда тип визуализатора на стороне пользовательского интерфейса вызывает IVisualizerObjectProvider.TransferData(Stream) или IVisualizerObjectProvider.TransferObject(object).
Этот метод можно использовать для определения пользовательского протокола передачи сообщений для обмена данными между типами визуализатора на стороне пользовательского интерфейса и отладчика или для вызова пользовательских действий с типом визуализатора на стороне отладчика. Тип визуализатора на стороне пользовательского интерфейса может передавать произвольные данные, сериализованные в |