IVisualizerObjectProvider2 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供額外的功能,將數據從偵錯範圍傳遞至可視化檢視。
public interface class IVisualizerObjectProvider2 : Microsoft::VisualStudio::DebuggerVisualizers::IVisualizerObjectProvider
public interface IVisualizerObjectProvider2 : Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider
type IVisualizerObjectProvider2 = interface
interface IVisualizerObjectProvider
Public Interface IVisualizerObjectProvider2
Implements IVisualizerObjectProvider
- 衍生
- 實作
備註
IVisualizerObjectProvider傳遞至 DialogDebuggerVisualizerShow(IDialogVisualizerService, IVisualizerObjectProvider) VS 16.10 及更新版本的 物件屬於此類型,因此您應該將其轉換成使用此新功能。
屬性
IsBinaryFormatterSupported |
指定偵錯專案是否支援 BinaryFormatter,因為它在 .NET 5 中已被取代。 如果沒有,提供者最常使用 JSON 與可視化檢視通訊。 (繼承來源 IVisualizerObjectProvider) |
IsObjectReplaceable |
指定是否可以建立取代物件。 也就是說,判斷要可視化的數據對像是可取代 (讀取/寫入) 還是不可取代 (只讀) 。 (繼承來源 IVisualizerObjectProvider) |
方法
Deserialize(Stream) |
已淘汰.
舊版可視化檢視所使用的舊版協助程式方法,可讓您更輕鬆地撰寫還原串行化程序代碼。 它會使用預設的二進位串行化,從數據流讀取指定的物件。 不過,由於安全性弱點及其使用方式,因此不應再使用,而且會在較新版本的 .NET 上擲回,例如 ASP.NET Core 5.0。 如果在支援二進位串行化的目標應用程式上呼叫,在方法完成數據流讀取之後,我們會傳回基礎物件。 |
GetData() |
取得所偵錯對象的相關初始數據 Blob。 數據會寫入提供的 MemoryStream。 (繼承來源 IVisualizerObjectProvider) |
GetDeserializableObject() |
使用 GetData 取得數據,然後傳回 IDeserializableObject,以便在不支援預設串行化時,呼叫端可以使用 JSON 還原串行化。 |
GetDeserializableObjectFrom(Stream) |
可用於取得可還原串行化對象的協助程式方法,適用於目標應用程式可能不支援二進位串行化的情況。 在這些情況下,基礎格式應該使用 JSON 串行化,因此呼叫端可以查詢個別屬性,以判斷想要還原串行化的物件類型。 |
GetObject() |
已淘汰.
使用 GetData 取得數據,然後還原串行化,假設已完成預設串行化 (繼承來源 IVisualizerObjectProvider) |
ReplaceData(Stream) |
根據指定的串行化數據,建立物件的取代複本。 (繼承來源 IVisualizerObjectProvider) |
ReplaceObject(Object) |
使用預設串行化串行化對象,然後使用 ReplaceData 設定數據 (繼承來源 IVisualizerObjectProvider) |
Serialize(Object, Stream) |
協助程式方法,可讓您更輕鬆地撰寫串行化程序代碼。 如果目標應用程式支援二進位串行化,它會使用 BinaryFormatter 類別的協助,將物件串行化至數據流。 如果不支援,這是較新版本 .NET 的情況,預設會以 JSON 格式串行化物件。 |
TransferData(Stream) |
將數據雙向傳輸至 VisualizerObjectSource 上的 TransferData 方法 (繼承來源 IVisualizerObjectProvider) |
TransferDeserializableObject(Object) |
使用 串行化傳出物件做為 IDeserializableObject,然後呼叫 TransferData。 傳回時會還原串行化傳入數據,並傳回包裝在IDeserializableObject 中的物件。 |
TransferObject(Object) |
已淘汰.
使用預設串行化串行化傳出對象,然後呼叫 TransferData。 當傳回還原串行化傳入數據並傳回已還原串行化的物件時 (繼承來源 IVisualizerObjectProvider) |