2011-11-24 7 views
8

Visual Studio'da hata ayıklama yaparken İzleme Penceresinde bir Özel Durumun içeriğinin içeriğini kolayca nasıl izleyebilirsiniz? Bu garip tip System.Collections.ListDictionaryInternal biridir. İzle penceresindeHata ayıklama sırasında Watch Window'da Exception.Data Görünüm

 try { 
      ... do something that throws exception with Data 
     } 
     catch (Exception ex) { 
      throw; 
     } 
     finally { 
     } 

:

ex.Data.Keys.Cast<string>() 
ex.Data.Values.Cast<string>() 

Ama bunun bir sözlük ya da bir şey olarak görüntüleyebilirsiniz

Sana Tuşlar ve ayrı ayrı Değerler görebilirsiniz anladım?

cevap

10

System.Collections.ListDictionaryInternal bir ıdictionary, bu nedenle sadece İzle veya QuickWatch penceresinde aşağıdaki ifadeyi değerlendirmek olabilir:

new System.Collections.Hashtable(ex.Data) 

Düzenleme: Ben co-yaratılan bu çok daha kolay hale getiren bir commercial extension for Visual Studio called OzCode. Bununla birlikte, Exception değişkeninin üzerine gelip sağ tıklayabilir, Create Custom Expression'u seçebilir ve new System.Collections.Hashtable([obj].Data) // Data yazabilirsiniz. Bu andan itibaren, bir İstisna'yı görüntülediğinizde, Veri sözlüğünü, herhangi bir manüel adım olmaksızın, güzel bir şekilde biçimlendirilmiş bir şekilde görebileceksiniz: screenshot

1

En iyi seçeneğiniz, System.Diagnostics.Debug.Write() kullanarak, Çıktı penceresindeki Veri öğeleri de dahil, İstisna içeriğinin çıktısını almak için bir işlev oluşturmaktır.