Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hata ayıklayıcı görselleştiricisinin mimarisinin iki bölümü vardır:
Hata ayıklayıcısı tarafı Visual Studio hata ayıklayıcı içinde çalışır. Hata ayıklayıcı tarafı kodu, görselleştiriciniz için kullanıcı arabirimini oluşturur ve görüntüler.
Debuggee tarafı, Visual Studio'da hata ayıklama işlemi içinde çalışır (debuggee).
Görselleştirici, hata ayıklayıcının bir veri nesnesinin içeriğini anlamlı, anlaşılır bir biçimde görüntülemesini (görselleştirmesini) sağlayan bir hata ayıklayıcısı bileşenidir. Bazı görselleştiriciler veri nesnesinin düzenlenmesini de destekler. Özel görselleştiriciler yazarak hata ayıklayıcısını kendi özel veri türlerinizi işleyecek şekilde genişletebilirsiniz.
Görselleştirilecek veri nesnesi, hata ayıklama işleminiz ( debuggee işlemi) içinde yer alır. Verileri görüntüleyecek kullanıcı arabirimi Visual Studio hata ayıklayıcı işlemi içinde oluşturulur:
| Hata Ayıklayıcı İşlemi | Hata Ayıklama işlemi |
|---|---|
| Hata ayıklayıcısı kullanıcı arabirimi (DataTips, Watch Window, QuickWatch) | Görselleştirilecek Veri Nesnesi |
Hata ayıklayıcısı arabirimindeki veri nesnesini görselleştirmek için, iki işlem arasında iletişim kurmak için kod gerekir. Sonuç olarak, görselleştirici mimarisi iki bölümden oluşur: hata ayıklayıcı tarafı kodu ve hata ayıklamaya yönelik yan kod.
Hata ayıklayıcı tarafı kodu, Veri İpucu, İzleme Penceresi veya QuickWatch gibi hata ayıklayıcı arabiriminden çağrılabilen kendi kullanıcı arabirimini oluşturur. Görselleştirici arabirimi DialogDebuggerVisualizer sınıfı ve IDialogVisualizerService arabirimi kullanılarak oluşturulur. Tüm Görselleştirici API'leri gibi DialogDebuggerVisualizer ve IDialogVisualizerService de ad alanında Microsoft.VisualStudio.DebuggerVisualizers bulunur.
| Hata Ayıklayıcı Taraf | Debuggee Tarafı |
|---|---|
| DialogDebuggerVisualizer Sınıfı IDialogVisualizerService Arabirimi |
Veri Nesnesi |
Kullanıcı arabirimi, hata ayıklayıcı tarafında bulunan bir Nesne Sağlayıcısından görselleştirilecek verileri alır:
| Hata Ayıklayıcı Tarafı | Debuggee Tarafı |
|---|---|
| DialogDebuggerVisualizer Sınıfı IDialogVisualizerService Arabirimi |
Veri Nesnesi |
| Nesne Sağlayıcısı (uygular IVisualizerObjectProvider) |
Hata ayıklama tarafında Nesne Kaynağı adlı karşılık gelen bir nesne vardır:
| Hata Ayıklayıcı Bölümü | Hata Ayıklanan Taraf |
|---|---|
| DialogDebuggerVisualizer Sınıfı IDialogVisualizerService arabirimi |
Veri Nesnesi |
| Nesne Sağlayıcısı (uygular IVisualizerObjectProvider) | VisualizerObjectSource Kaynağından türetilmiş Nesne |
Nesne Sağlayıcısı, görselleştirici kullanıcı arabiriminde görselleştirilecek nesne verilerini sağlar. Nesne Sağlayıcısı nesne verilerini Nesne Kaynağı'ndan alır. Nesne Sağlayıcısı ve Nesne Kaynağı, nesne verilerini hata ayıklayıcı tarafıyla hata ayıklayıcı tarafı arasında iletmek için API'ler sağlar.
Her görselleştirme aracı, görselleştirilecek veri nesnesini almalıdır. Aşağıdaki tabloda, Nesne Sağlayıcısı ve Nesne Kaynağı'nın bu amaçla kullandığı ilgili API'ler gösterilmektedir:
| Nesne Sağlayıcısı | Nesne Kaynağı |
|---|---|
| GetData —veya— GetObject |
GetData |
Nesne sağlayıcısının ya GetData veya GetObject kullanabileceğine dikkat edin. Her iki API de Nesne Kaynağı'ndaki GetData çağrısı ile sonuçlanır. Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.GetData öğesine yapılan bir çağrı, görselleştirilmekte olan nesnenin serileştirilmiş bir biçimini temsil eden bir System.IO.Stream'i doldurur.
Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetObject verileri seri durumdan çıkarıp nesne biçimine dönüştürerek, DialogDebuggerVisualizer ile oluşturduğunuz kullanıcı arabiriminde görüntüleyebilirsiniz.
Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetData verileri ham Streamolarak doldurur ve bu durumda kendi seri durumdan çıkarmanız gerekir.
Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetObject, Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetData çağırarak Stream'yi serileştirilmiş hâlde alır ve ardından verileri seri durumdan çıkarır. Nesne .NET tarafından serileştirilebilir olmadığında ve özel serileştirme gerektirdiğinde kullanın Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetData . Bu durumda, Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.Serialize yöntemini de geçersiz kılmanız gerekir.
Bir salt okunur görselleştirici oluşturuyorsanız, GetData veya GetObject ile tek yönlü iletişim yeterlidir. Veri nesnelerinin düzenlenmesini destekleyen bir görselleştirici oluşturuyorsanız, daha fazlasını yapmalısınız. Bir veri nesnesini Nesne Sağlayıcısı'ndan Nesne Kaynağına da gönderebilmeniz gerekir. Aşağıdaki tabloda, bu amaç için kullanılan Nesne Sağlayıcısı ve Nesne Kaynağı API'leri gösterilmektedir:
| Nesne Sağlayıcısı | Nesne Kaynağı |
|---|---|
| ReplaceData —veya— ReplaceObject |
CreateReplacementObject |
Nesne Sağlayıcısı'nın kullanabileceği iki API olduğuna dikkat edin. Veriler her zaman Nesne Sağlayıcısı'ndan Nesne Kaynağı'na olarak Streamgönderilir, ancak ReplaceData nesneyi Stream kendi içinde seri hale getirmenizi gerektirir.
ReplaceObject sağladığınız bir nesneyi alır, serileştirir ve ardından Stream öğesini CreateReplacementObject adresine göndermek için ReplaceData'yi çağırır.
Replace yöntemlerinden birinin kullanılması debuggee içinde görselleştirilmekte olan nesnenin yerini alan yeni bir veri nesnesi oluşturur. Özgün nesnenin içeriğini değiştirmeden değiştirmek istiyorsanız, aşağıdaki tabloda gösterilen Aktarım yöntemlerinden birini kullanın. Bu API'ler, görselleştirilmekte olan nesneyi değiştirmeden verileri aynı anda her iki yönde de aktarır:
| Nesne Sağlayıcısı | Nesne Kaynağı |
|---|---|
| TransferData —veya— TransferObject |
TransferData |