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.
Önemli
Visual Studio 2022 sürüm 17.9'dan başlayarak, görselleştiriciler artık yeni VisualStudio.Genişletilebilirlik modeli kullanılarak işlem dışı çalışan .NET 6.0+ dilinde yazılabilir. Yeni model kullanılarak oluşturulan uzantılar için, bunun yerine Visual Studio hata ayıklayıcısı görselleştiricileri oluşturma bağlantısındaki belgelere bakın. Visual Studio'nun eski sürümlerini desteklemeniz gerekiyorsa veya özel görselleştiricilerinizi bir kitaplık DLL'sinin parçası olarak göndermek istiyorsanız, bu makaledeki yalnızca eski uzantı geliştirme modeli (VSSDK) için geçerli olan bilgileri kullanın.
Bu izlenecek yol, C# kullanarak basit bir görselleştirici yazmayı gösterir. Bu kılavuzda oluşturduğunuz görselleştirici, Windows Formu kullanarak bir dizenin içeriğini görüntüler. Bu basit dize görselleştiricisi özellikle kendi içinde kullanışlı değildir, ancak diğer veri türleri için daha kullanışlı görselleştiriciler oluşturmak için izlemeniz gereken temel adımları gösterir.
Uyarı
Gördüğünüz iletişim kutuları ve menü komutları, etkin ayarlarınıza veya sürümünüze bağlı olarak Yardım'da açıklananlardan farklı olabilir. Ayarlarınızı değiştirmek için Araçlar menüsüne gidin ve Ayarları İçeri ve Dışarı Aktar'ı seçin. Daha fazla bilgi için bkz. Ayarları sıfırlama.
Görselleştirici kodu, hata ayıklayıcının okuduğu bir DLL dosyasına yerleştirilmelidir. Bu nedenle, ilk adım DLL için bir Sınıf Kitaplığı projesi oluşturmaktır.
El ile görselleştirici oluşturma
Görselleştirici oluşturmak için aşağıdaki görevleri tamamlayın.
Sınıf kitaplığı projesi oluşturma
Yeni bir sınıf kitaplığı projesi oluşturmak için Dosya>Yeni Proje'yi> seçin.
Dil açılır menüsünden C# öğesini seçin.
Arama kutusuna sınıf kitaplığı girin. Sınıf Kitaplığı (.NET Framework) öğesini ve ardından İleri'yi seçin.
İletişim kutusuna adını
MyFirstVisualizer
girin ve Oluştur'u seçin.
Görselleştirici projesi için .NET değil bir .NET Framework sınıf kitaplığı seçtiğinizden emin olun. Görselleştiricinin .NET Framework olması gerekse de, çağıran uygulama .NET olabilir.
Sınıf kitaplığını oluşturduktan sonra, orada tanımlanan sınıfları kullanabilmek için Microsoft.VisualStudio.DebuggerVisualizers.DLL
dosyaya bir başvuru eklemeniz gerekir. Referansı eklemeden önce bazı sınıfları anlamlı adlar kullanacak şekilde yeniden adlandırmanız gerekir.
Class1.cs yeniden adlandırın ve Microsoft.VisualStudio.DebuggerVisualizers ekleyin
Çözüm Gezgini'nde Class1.cs sağ tıklayın ve bağlam menüsünden Yeniden Adlandır'ı seçin.
Class1.cs adını DebuggerSide.cs gibi anlamlı bir adla değiştirin.
Uyarı
Visual Studio, yeni dosya adıyla eşleşecek şekilde DebuggerSide.cs sınıf bildirimini otomatik olarak değiştirir. Eylemi tamamlamak için bir istem görürseniz Evet'i seçin.
Çözüm Gezgini'ndeBaşvurular'a sağ tıklayın ve kısayol menüsünde Başvuru Ekle'yi seçin.
Başvuru Ekle iletişim kutusunda, Gözat sekmesine gidin, Gözat'ı seçin ve Microsoft.VisualStudio.DebuggerVisualizers.DLL dosyasını bulun.
DLL dosyasını <Visual Studio'nun yükleme dizininin Visual Studio Install Directory>\Common7\IDE\PublicAssemblies alt dizininde bulabilirsiniz.
Tamam'ı seçin.
DebuggerSide.cs yönergelerine
using
aşağıdakileri ekleyin:using Microsoft.VisualStudio.DebuggerVisualizers;
Artık hata ayıklayıcı tarafı kodu oluşturmaya hazırsınız. Bu kod, görselleştirmek istediğiniz bilgileri görüntülemek için hata ayıklayıcısı içinde çalışır. İlk olarak, DialogDebuggerVisualizer
temel sınıfından devralmayı yapılandırmak amacıyla DebuggerSide
nesnesinin bildirimini değiştirmeniz gerekir.
DialogDebuggerVisualizer'dan Devral
DebuggerSide.cs aşağıdaki kod satırına gidin:
public class DebuggerSide
Kodu aşağıdaki gibi değiştirin:
public class DebuggerSide : DialogDebuggerVisualizer
Temel sınıfın yapıcısına, görselleştirici bileşenleri arasında iletişim kurmak için kullanılacak serileştirme ilkesini iletebilmeniz için boş bir yapıcı ekleyin.
public DebuggerSide() : base(FormatterPolicy.NewtonsoftJson) // or FormatterPolicy.Json { }
Uyarı
Visual Studio 2022 sürüm 17.11'den başlayarak .NET 5.0+ için özel hata ayıklayıcısı tarafında dikkat edilmesi gerekenler bölümünde açıklanan güvenlik sorunları nedeniyle görselleştiriciler biçimlendirici ilkesini belirtemez
Legacy
.DialogDebuggerVisualizer
geçersiz kılmanız gereken bir soyut yönteme (Show
) sahiptir.
DialogDebuggerVisualizer.Show yöntemini geçersiz kılma
içine public class DebuggerSide
aşağıdaki yöntemi ekleyin:
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
}
yöntemi, Show
görselleştirici iletişim kutusunu veya başka bir kullanıcı arabirimini oluşturan kodu içerir ve hata ayıklayıcıdan görselleştiriciye geçirilen bilgileri görüntüler. İletişim kutusunu oluşturan ve bilgileri görüntüleyen kodu eklemeniz gerekir. Bu kılavuzda bir Windows Forms ileti kutusu kullanacaksınız. İlk olarak, System.Windows.Forms için bir başvuru ve using
yönerge eklemeniz gerekir.
System.Windows.Forms Ekleme
Çözüm Gezgini'ndeBaşvurular'a sağ tıklayın ve kısayol menüsünde Başvuru Ekle'yi seçin.
Başvuru Ekle iletişim kutusundaki Gözat sekmesindeGözat'ı seçin ve System.Windows.Forms.DLL bulun.
DLL dosyasını C:\Windows\Microsoft.NET\Framework\v4.0.30319 konumunda bulabilirsiniz.
Tamam'ı seçin.
DebuggerSide.cs yönergelerine
using
aşağıdakileri ekleyin:using System.Windows.Forms;
Şimdi, görselleştiricinizin kullanıcı arabirimini oluşturmak ve göstermek için bazı kodlar ekleyin. Bu örnek ilk görselleştiriciniz olduğundan, kullanıcı arabirimini basit tutabilir ve bir İleti Kutusu kullanabilirsiniz.
İletişim kutusunda Görselleştirici Çıktısını gösterme
yöntemine
Show
aşağıdaki kod satırını ekleyin:MessageBox.Show(objectProvider.GetObject().ToString());
Bu örnek kod, hata işlemeyi içermez. Hata işlemeyi gerçek bir görselleştiriciye veya başka bir uygulama türüne eklemeniz gerekir.
Oluştur menüsünde MyFirstVisualizer'ı Derle'yi seçin. Proje başarıyla tamamlanmalıdır. Devam etmeden önce derleme hatalarını düzeltin.
Hata ayıklayıcısı yan kodu artık tamamlandı. Ancak bir adım daha var; debuggee tarafına hangi sınıf koleksiyonunun görselleştiriciyi içerdiğini bildiren öznitelik.
Debuggee-side kodu için görselleştirilecek türü ekleme
Hata ayıklayıcı tarafı kodunda, debug edilen program için görselleştirilecek türü belirtmek üzere DebuggerVisualizerAttribute özniteliğini kullanırsınız.
Target
özelliği, görselleştirmek için türünü ayarlar.
DebuggerSide.cs dosyasına,
using
yönergelerinden sonra ancaknamespace MyFirstVisualizer
'den önce aşağıdaki öznitelik kodunu ekleyin:[assembly:System.Diagnostics.DebuggerVisualizer( typeof(MyFirstVisualizer.DebuggerSide), typeof(VisualizerObjectSource), Target = typeof(System.String), Description = "My First Visualizer")]
Oluştur menüsünde MyFirstVisualizer'ı Derle'yi seçin. Proje başarıyla tamamlanmalıdır. Devam etmeden önce derleme hatalarını düzeltin.
Bu noktada, ilk görselleştiriciniz tamamlanmıştır. Adımları doğru izlediyseniz görselleştiriciyi derleyebilir ve Visual Studio'ya yükleyebilirsiniz. Ancak Visual Studio'ya bir görselleştirici yüklemeden önce, doğru çalıştığından emin olmak için bunu test etmelisiniz. Şimdi görselleştiriciyi Visual Studio'ya yüklemeden çalıştırmak için bir test çatısı oluşturacaksınız.
Görselleştiriciyi göstermek için test yöntemi ekleme
sınıfına
public DebuggerSide
aşağıdaki yöntemi ekleyin:public static void TestShowVisualizer(object objectToVisualize) { VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof(DebuggerSide)); visualizerHost.ShowVisualizer(); }
Oluştur menüsünde MyFirstVisualizer'ı Derle'yi seçin. Proje başarıyla tamamlanmalıdır. Devam etmeden önce derleme hatalarını düzeltin.
Ardından, görselleştirici DLL'nizi çağırmak için yürütülebilir bir proje oluşturmanız gerekir. Kolaylık olması için Konsol Uygulaması projesi kullanın.
Çözüme konsol uygulaması projesi ekleme
Çözüm Gezgini'nde çözüme sağ tıklayın, Ekle'yi ve ardından Yeni Proje'yi seçin.
Dosya>Yeni Proje'yi> seçin. Dil açılan listesinde C# öğesini seçin. Arama kutusuna konsol uygulaması yazın ve ardından Konsol Uygulaması (.NET Framework) veya .NET için Konsol Uygulaması'nı seçin. sonrakiseçin. Görüntülenen iletişim kutusuna adını
MyTestConsole
yazın ve Oluştur'u seçin.
Uyarı
Test koşumunu kullanarak görselleştiriciyi kolayca test etmek istiyorsanız bir .NET Framework konsol uygulaması oluşturun. Bunun yerine bir .NET konsol uygulaması oluşturabilirsiniz, ancak daha sonra açıklanan test koşumu henüz .NET için desteklenmediğinden, bunu test etmek için görselleştiriciyi yüklemeniz gerekir. .NET konsol uygulaması için önce burada konsol uygulamasını oluşturun, gerekli DLL ve proje başvurularını ekleyin ve ardından Hata ayıklamaya yönelik veri nesnesi ekleme başlığında açıklanan adımları izleyin. ASP.NET Core senaryoları için .NET 5.0+ için özel hata ayıklama tarafı dikkate alınması gerekenler bölümüne bakın.
Şimdi, MyTestConsole'un MyFirstVisualizer'ı çağırabilmesi için gerekli başvuruları eklemeniz gerekir.
MyTestConsole'a gerekli referansları ekleyin
Çözüm Gezgini'ndeMyTestConsole öğesine sağ tıklayın ve kısayol menüsünde Başvuru Ekle'yi seçin.
Başvuru Ekle iletişim kutusunda Gözat sekmesini açın ve Microsoft.VisualStudio.DebuggerVisualizers.DLL seçin.
Tamam'ı seçin.
MyTestConsole öğesine sağ tıklayın ve Yeniden Başvuru Ekle'yi seçin.
Başvuru Ekle iletişim kutusunda Projeler sekmesini açın ve MyFirstVisualizer'ı seçin.
Tamam'ı seçin.
Şimdi test çerçevesini tamamlamak için kodu ekleyin.
MyTestConsole'a kod ekleme
Çözüm Gezgini'nde Program.cs sağ tıklayın ve kısayol menüsünde Yeniden Adlandır'ı seçin.
Program.cs adını TestConsole.cs gibi daha anlamlı bir adla düzenleyin.
Uyarı
Visual Studio, TestConsole.cs'daki sınıf bildirimini yeni dosya adıyla eşleşecek şekilde otomatik olarak değiştirir.
TestConsole.cs yönergelerine
using
aşağıdaki kodu ekleyin:using MyFirstVisualizer;
yönteminde
Main
aşağıdaki kodu ekleyin:String myString = "Hello, World"; DebuggerSide.TestShowVisualizer(myString);
Artık ilk görselleştiricinizi test etmeye hazırsınız.
Görselleştiriciyi test edin
Çözüm Gezgini'ndeMyTestConsole öğesine sağ tıklayın ve kısayol menüsünde Başlangıç Projesi Olarak Ayarla'yı seçin.
Hata Ayıklama menüsünde Başlatseçin.
Konsol uygulaması başlatılır ve Görselleştirici görüntülenir ve "Hello, World" dizesini görüntüler.
Tebrikler. İlk görselleştiricinizi oluşturup test etmişsiniz!
Görselleştiricinizi yalnızca test düzeninden çağırmak yerine Visual Studio'da kullanmak istiyorsanız, yüklemeniz gerekir. Daha fazla bilgi için bkz . Nasıl yapılır: Görselleştirici Yükleme.
Debuggee tarafında bir veri nesnesi ekleme
Bu bölümde, veri nesnesinden System.String
özel bir veri nesnesine geçebilirsiniz.
Çözüm Gezgini'nde çözüme sağ tıklayın, Ekle'yi ve ardından Yeni Proje'yi seçin. Dil açılan listesinde C# öğesini seçin. Arama kutusuna sınıf kitaplığı yazın ve ardından Sınıf Kitaplığı (.NET Framework) veya .NET Standard için Sınıf Kitaplığı'nı seçin.
Uyarı
.NET Framework test konsolu uygulaması kullanıyorsanız bir .NET Framework sınıf kitaplığı projesi oluşturduğunuzdan emin olun.
sonrakiseçin. Görüntülenen iletişim kutusuna adını
MyDataObject
yazın ve Oluştur'u seçin.(Yalnızca.NET Standart sınıf kitaplığı) Çözüm Gezgini'nde projeye sağ tıklayın ve Proje Dosyasını Düzenle'yi seçin.
<TargetFramework>
değerininetstandard2.0
olarak değiştirin.<TargetFramework>netstandard2.0</TargetFramework>
Ad alanının içinde
MyDataObject
varsayılan kodu aşağıdaki kodla değiştirin.[Serializable] public class CustomDataObject { public CustomDataObject() { this.MyData = "MyTestData"; } public string MyData { get; set; } }
Bu örnekte olduğu gibi salt okunur bir görselleştirici için VisualizerObjectSource yöntemlerinin uygulanması gerekmez.
Ardından MyFirstVisualizer projesini yeni veri nesnesini kullanacak şekilde güncelleştirin.
Çözüm Gezgini'nde MyFirstVisualizer projesinin altında Başvurular düğümüne sağ tıklayın ve Başvuru Ekle'yi seçin.
Projeler'in altında MyDataObject projesini seçin.
DebuggerSide.cs öznitelik kodunda Hedef değerini
System.String
'denMyDataObject.CustomDataObject
'e değiştirerek güncelleyin.Target = typeof(MyDataObject.CustomDataObject),
MyFirstVisualizer projesinde
Show
yönteminin kodunu aşağıdaki kodla değiştirin.var data = objectProvider.GetObject() as MyDataObject.CustomDataObject; // You can replace displayForm with your own custom Form or Control. Form displayForm = new Form(); displayForm.Text = data.MyData; windowService.ShowDialog(displayForm);
Yukarıdaki kod, Formun başlığında göstermek için veri nesnesinin bir özelliğini kullanır.
Ardından konsol uygulamasını özel veri nesnesini kullanacak şekilde güncelleştirin.
Çözüm Gezgini'nde MyTestConsole projesinin altında Başvurular veya Bağımlılıklar düğümüne sağ tıklayın ve öğesine
MyDataObject
bir proje başvurusu ekleyin.Program.cs yöntemindeki
Main
kodu aşağıdaki kodla değiştirin.// String myString = "Hello, World"; CustomDataObject customDataObject = new CustomDataObject(); DebuggerSide.TestShowVisualizer(customDataObject);
(.NET konsol uygulaması) Test koşum takımının desteklenmediğinden,
TestShowVisualizer
çağrısını bir try-catch deyimi içine alın.try { DebuggerSide.TestShowVisualizer(customDataObject); } catch (Exception) { }
Konsol uygulaması, görselleştiriciye bir çalışma zamanı referansı gerektirir. Açıklama satırı yerine önceki kodu koruyarak başvuruyu koruyabilirsiniz.
.NET Framework konsol uygulaması için test koşumunu çalıştırabilir ( F5 tuşuna basın) veya Nasıl yapılır: Görselleştirici Yükleme başlığı altında yönergeleri izleyebilirsiniz.
Uygulamayı test düzeneğini kullanarak çalıştırırsanız, uygulama Windows Formu gösterir.
.NET konsol uygulaması için,
MyFirstVisualizer.dll
veMyDataObject.dll
öğelerini Nasıl yapılır: Görselleştirici Yükleme bölümünde açıklanan klasörlere kopyalayın.Görselleştiriciyi yükledikten sonra bir kesme noktası ayarlayın, konsol uygulamasını çalıştırın ve fareyi
customDataObject
üzerine getirin. Her şey doğru ayarlandıysa büyüteç simgesinigörmeniz gerekir.
Büyüteçten MyFirstVisualizer'ı seçtiğinizde, başlıkta veri nesnesi metnini içeren Formu görürsünüz.