İzlenecek Yol: C# ile Görselleştirici Yazma

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.

Not

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

  1. Yeni bir sınıf kitaplığı projesi oluşturmak için Dosya>Yeni Proje'yi> seçin.

  2. Dil açılan listesinde C# öğesini seçin.

  3. Arama kutusuna sınıf kitaplığı girin. Sınıf Kitaplığı (.NET Framework) öğesini ve ardından İleri'yi seçin.

  4. İletişim kutusuna adını MyFirstVisualizergirin 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. Başvuruyu 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

  1. Çözüm Gezgini'da Class1.cs sağ tıklayın ve bağlam menüsünden Yeniden Adlandır'ı seçin.

  2. Class1.cs adını DebuggerSide.cs gibi anlamlı bir adla değiştirin.

    Not

    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.

  3. Çözüm Gezgini'da Başvurular'a sağ tıklayın ve kısayol menüsünde Başvuru Ekle'yi seçin.

  4. Başvuru Ekle iletişim kutusundaki Gözat sekmesinde Gözat'ı seçin ve Microsoft.VisualStudio.DebuggerVisualizers.DLL bulun.

    DLL dosyasını <Visual Studio'nun yükleme dizininin Visual Studio Install Directory>\Common7\IDE\PublicAssemblies alt dizininde bulabilirsiniz.

  5. Tamam'ı seçin.

  6. 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, temel sınıfından DebuggerSideDialogDebuggerVisualizerdevralmayı yapılandırmak için nesnesinin bildirimini değiştirmeniz gerekir.

DialogDebuggerVisualizer'dan Devral

  1. DebuggerSide.cs aşağıdaki kod satırına gidin:

    public class DebuggerSide
    
  2. Kodu şu şekilde değiştirin:

    public class DebuggerSide : DialogDebuggerVisualizer
    

    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 DebuggerSideaş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

  1. Çözüm Gezgini'da Başvurular'a sağ tıklayın ve kısayol menüsünde Başvuru Ekle'yi seçin.

  2. Başvuru Ekle iletişim kutusundaki Gözat sekmesinde Gözat'ı seçin ve System.Windows.Forms.DLL bulun.

    DLL dosyasını C:\Windows\Microsoft.NET\Framework\v4.0.30319 konumunda bulabilirsiniz.

  3. Tamam'ı seçin.

  4. 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

  1. Show yönteminde 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.

  2. Oluştur menüsünde MyFirstVisualizer'ı Derle'yi seçin. Proje başarıyla derlenmelidir. 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, özniteliğini kullanarak DebuggerVisualizerAttribute debuggee için görselleştirilecek türü (nesne kaynağı) belirtirsiniz. Target özelliği, görselleştirmek için türünü ayarlar.

  1. yönergelerinden sonra using ancak önce namespace MyFirstVisualizerDebuggerSide.cs aşağıdaki öznitelik kodunu ekleyin:

    [assembly:System.Diagnostics.DebuggerVisualizer(
    typeof(MyFirstVisualizer.DebuggerSide),
    typeof(VisualizerObjectSource),
    Target = typeof(System.String),
    Description = "My First Visualizer")]
    
  2. Oluştur menüsünde MyFirstVisualizer'ı Derle'yi seçin. Proje başarıyla derlenmelidir. 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 koşumu oluşturacaksınız.

Görselleştiriciyi göstermek için test yöntemi ekleme

  1. sınıfına public DebuggerSideaşağıdaki yöntemi ekleyin:

    public static void TestShowVisualizer(object objectToVisualize)
    {
       VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof(DebuggerSide));
       visualizerHost.ShowVisualizer();
    }
    
  2. Oluştur menüsünde MyFirstVisualizer'ı Derle'yi seçin. Proje başarıyla derlenmelidir. 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

  1. Çözüm Gezgini çözüme sağ tıklayın, Ekle'yi ve ardından Yeni Proje'yi seçin.

  2. 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. İleri'yi seçin. Görüntülenen iletişim kutusuna adını MyTestConsoleyazın ve Oluştur'u seçin.

Not

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 bkz . .NET 5.0+ için özel hata ayıklayıcısı tarafı konuları.

Şimdi, MyTestConsole'un MyFirstVisualizer'ı çağırabilmesi için gerekli başvuruları eklemeniz gerekir.

MyTestConsole'a gerekli başvuruları ekleme

  1. Çözüm Gezgini'da MyTestConsole'a sağ tıklayın ve kısayol menüsünde Başvuru Ekle'yi seçin.

  2. Başvuru Ekle iletişim kutusunda Gözat sekmesini açın ve Microsoft.VisualStudio.DebuggerVisualizers.DLL seçin.

  3. Tamam'ı seçin.

  4. MyTestConsole öğesine sağ tıklayın ve Yeniden Başvuru Ekle'yi seçin.

  5. Başvuru Ekle iletişim kutusunda Projeler sekmesini açın ve MyFirstVisualizer'ı seçin.

  6. Tamam'ı seçin.

Şimdi test koşumunu tamamlamak için kodu ekleyin.

MyTestConsole'a kod ekleme

  1. Çözüm Gezgini'da Program.cs sağ tıklayın ve kısayol menüsünde Yeniden Adlandır'ı seçin.

  2. Program.cs adını TestConsole.cs gibi daha anlamlı bir adla düzenleyin.

    Not

    Visual Studio, TestConsole.cs'daki sınıf bildirimini yeni dosya adıyla eşleşecek şekilde otomatik olarak değiştirir.

  3. TestConsole.cs yönergelerine using aşağıdaki kodu ekleyin:

    using MyFirstVisualizer;
    
  4. yönteminde Mainaş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

  1. Çözüm Gezgini'da, MyTestConsole'a sağ tıklayın ve kısayol menüsünde Başlangıç Projesi Olarak Ayarla'yı seçin.

  2. Hata Ayıkla menüsünde Başlat'ı seç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 koşumundan ç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-side veri nesnesi ekleme

Bu bölümde, veri nesnesinden System.String özel bir veri nesnesine geçebilirsiniz.

  1. Çözüm Gezgini çö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.

    Not

    .NET Framework test konsolu uygulaması kullanıyorsanız bir .NET Framework sınıf kitaplığı projesi oluşturduğunuzdan emin olun.

  2. İleri'yi seçin. Görüntülenen iletişim kutusuna adını MyDataObjectyazın ve Oluştur'u seçin.

  3. (Yalnızca.NET Standart sınıf kitaplığı) Çözüm Gezgini'de projeye sağ tıklayın ve Proje Dosyasını Düzenle'yi seçin. değerini olarak <TargetFramework>netstandard2.0değiştirin.

    <TargetFramework>netstandard2.0</TargetFramework>
    
  4. 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.

  5. myFirstVisualizer projesinin altındaki Çözüm Gezgini, Başvurular düğümüne sağ tıklayın ve Başvuru Ekle'yi seçin.

  6. Projeler'in altında MyDataObject projesini seçin.

  7. DebuggerSide.cs öznitelik kodunda Hedef değerini olarak değiştirerek System.StringMyDataObject.CustomDataObjectgüncelleştirin.

    Target = typeof(MyDataObject.CustomDataObject),
    
  8. MyFirstVisualizer projesinde yönteminin kodunu Show 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.

  9. myTestConsole projesinin altındaki Çözüm Gezgini, Başvurular veya Bağımlılıklar düğümüne sağ tıklayın ve öğesine MyDataObjectbir proje başvurusu ekleyin.

  10. Program.cs yöntemindeki Main kodu aşağıdaki kodla değiştirin.

    // String myString = "Hello, World";
    CustomDataObject customDataObject = new CustomDataObject();
    
    DebuggerSide.TestShowVisualizer(customDataObject);
    
  11. (.NET konsol uygulaması) Test koşumunun desteklenmediğinden çağrısı TestShowVisualizer bir try-catch deyimi içine alın.

    try
    {
          DebuggerSide.TestShowVisualizer(customDataObject);
    }
    catch (Exception) {
    }
    

    Konsol uygulamasının görselleştiriciye bir çalışma zamanı başvurusu gerekir. Açıklama satırı yerine önceki kodu koruyarak başvuruyu koruyabilirsiniz.

  12. .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 koşumunu kullanarak çalıştırırsanız, uygulama Windows Formunu gösterir.

  13. .NET konsol uygulaması için ve MyDataObject.dll öğesini Nasıl yapılır: Görselleştirici Yükleme bölümünde açıklanan klasörlere kopyalayınMyFirstVisualizer.dll.

  14. Görselleştiriciyi yükledikten sonra bir kesme noktası ayarlayın, konsol uygulamasını çalıştırın ve üzerine customDataObjectgelin. Her şey doğru ayarlandıysa büyüteç simgesini VisualizerIcongörmeniz gerekir.

    Visualizer magnifying glass icon.

    Büyüteçten MyFirstVisualizer'ı seçtiğinizde, başlıkta veri nesnesi metnini içeren Formu görürsünüz.

    Visualizer showing a Windows Form