IVisualizerObjectProvider3 Arabirim

Tanım

Görselleştirici hata ayıklayıcı ve debuggee tarafı bileşenlerinin hangi serileştirme mekanizmasında kullanılacağına eşgüdüm sağlamasına olanak tanır ve hata ayıklamaya veri geçirmek için ek işlevsellik sağlar.SelectedFormatterPolicy

public interface IVisualizerObjectProvider3 : Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider2
type IVisualizerObjectProvider3 = interface
    interface IVisualizerObjectProvider2
    interface IVisualizerObjectProvider
Public Interface IVisualizerObjectProvider3
Implements IVisualizerObjectProvider2
Uygulamalar

Özellikler

IsBinaryFormatterSupported

.NET 5'te kullanım dışı bırakıldığından debuggee'nin BinaryFormatter'i desteklediğini belirtir. Aksi takdirde, sağlayıcı görselleştiriciyle iletişim kurmak için en çok JSON kullanır.

(Devralındığı yer: IVisualizerObjectProvider)
IsObjectReplaceable

Değiştirme nesnesinin oluşturulup oluşturulamayacağını belirtir. Yani, görselleştirilen veri nesnesinin değiştirilebilir (okuma/yazma) veya yer değiştirilemez (salt okunur) olup olmadığını belirler.

(Devralındığı yer: IVisualizerObjectProvider)
SelectedFormatterPolicy

Bu sınıfın bilgileri serileştirirken/seri durumdan çıkarırken kullanacağı biçim ilkesi.

Yöntemler

Deserialize(Stream)
Geçersiz.

Seri durumdan çıkarma kodu yazmayı kolaylaştıran eski görselleştiriciler tarafından kullanılan eski yardımcı yöntemi. Verilen nesneyi akıştan okumak için varsayılan ikili serileştirmeyi kullanır. Ancak, kullanımıyla ilgili güvenlik açıkları nedeniyle artık kullanılmamalıdır ve .NET'in ASP.NET Core 5.0 gibi daha yeni sürümlerini oluşturur.

İkili SeriLeştirmeyi destekleyen bir hedef uygulamada çağrılırsa, yöntem tamamlandıktan sonra akış okunur ve temel alınan nesneyi döndürüriz.

(Devralındığı yer: IVisualizerObjectProvider2)
DeserializeFromJson<T>(Stream, Object)

Newtonsoft.Json biçimindeki verileri belirtilen akıştan belirli bir türdeki bir nesneye seri durumdan kaldırır.

GetData()

Hata ayıklanan nesneyle ilgili ilk veri blobunu alır. Veriler sağlanan MemoryStream'e yazılır.

(Devralındığı yer: IVisualizerObjectProvider)
GetDeserializableObject()

GetData kullanarak verileri alır ve varsayılan serileştirme desteklenmiyorsa çağıranın JSON ile seri durumdan çıkarabilmesi için bir IDeserializableObject döndürür.

(Devralındığı yer: IVisualizerObjectProvider2)
GetDeserializableObjectFrom(Stream)

Hedef uygulamanın İkili Serileştirmeyi desteklemeyebileceği durumlar için seri durumdan çıkarılabilir bir nesne almak için kullanılabilecek yardımcı yöntemi. Böyle durumlarda, temel alınan biçim JSON kullanılarak seri hale getirilmelidir, böylece arayanlar seri durumdan çıkarılmasını istedikleri nesnenin türünü belirlemek için tek tek özellikleri sorgulayabilir.

(Devralındığı yer: IVisualizerObjectProvider2)
GetObject()
Geçersiz.

GetData kullanarak verileri alır ve ardından varsayılan serileştirmenin yapıldığını varsayarak seri durumdan çıkarılır

(Devralındığı yer: IVisualizerObjectProvider)
GetObject<T>()

kullanarak GetData() verileri alır ve belirtilen türe seri durumdan çıkarmaya çalışır.

ReplaceData(Stream)

Verilen serileştirilmiş verileri temel alarak nesnenin yeni bir kopyasını oluşturur.

(Devralındığı yer: IVisualizerObjectProvider)
ReplaceObject(Object)

Varsayılan serileştirmeyi kullanarak nesneyi serileştirir ve ardından ReplaceData kullanarak verileri ayarlar

(Devralındığı yer: IVisualizerObjectProvider)
Serialize(Object, Stream)

Serileştirme kodu yazmayı kolaylaştıran yardımcı yöntemi.

Hedef uygulama İkili Serileştirmeyi destekliyorsa, BinaryFormatter sınıfının yardımıyla nesneyi akışa seri hale getirir. Bu desteklenmiyorsa (.NET'in daha yeni sürümlerinde böyledir), nesneyi JSON biçiminde seri hale getirmek varsayılan olarak kullanılır.

(Devralındığı yer: IVisualizerObjectProvider2)
TransferData(Stream)

VisualizerObjectSource üzerindeki TransferData yöntemine verileri çift yönlü olarak aktarır

(Devralındığı yer: IVisualizerObjectProvider)
TransferDeserializableObject(Object)

IDeserializableObject olarak kullanarak giden nesneyi serileştirir ve ardından TransferData'yi çağırır. Dönüşte gelen veriler seri durumdan çıkarılır ve bir IDeserializableObject içinde sarmalanan nesneyi döndürür.

(Devralındığı yer: IVisualizerObjectProvider2)
TransferObject(Object)
Geçersiz.

Varsayılan serileştirmeyi kullanarak giden nesneyi serileştirir ve ardından TransferData'yi çağırır. Dönüşte gelen veriler seri durumdan çıkarılır ve seri durumdan çıkarılmış nesne döndürülüyor

(Devralındığı yer: IVisualizerObjectProvider)
TransferObject<T>(Object)

ve öğesini kullanarak SelectedFormatterPolicy giden nesneyi seri hale getirerek öğesini çağırır TransferData(Stream). Dönüşte, gelen verileri seri durumdan çıkarmaya çalışır ve belirtilen türdeki nesneyi döndürür.

Şunlara uygulanır