2012-10-23 33 views
1

在調試器窗口中檢查Web服務的響應時,響應的每個字段都會列出兩次 - 一次是字段的附錄。從調試器窗口中列出兩次隱藏字段

如何隱藏第二上市?所概述on the msdn library

的web服務參考被添加,因此我不希望手動添加attribute[DebuggerBrowsable(DebuggerBrowsableState.Never)]

+0

你有沒有考慮寫一個可視化工具? 只是一個想法... http://msdn.microsoft.com/en-us/library/ms164759.aspx – Benedetto

+0

除了編寫自己的可視化器或使用'[DebuggerBrowsable(DebuggerBrowsableState.Never )]'屬性。 儘管你可以使用'Reflection.Emit'命名空間以編程方式將其插入到你的代碼中。 –

回答

1

這是一個駭客,並不像常規的Watch窗口那麼顯眼,但你可以使用這個過程。

  1. 添加GetFieldValues實用程序方法,該方法將只提取所需的字段值。
  2. 調試時,打開Immediate Window
  3. 在立即窗口,營造了GetFieldValues
  4. 在監視窗口結果的變量,添加新創建的變量。

這樣你就可以過濾出你不想看到的東西。下面是它在行動截圖: Visual Studio immediate and watch windows

實用方法:

public static List<Tuple<String,Object>> GetFieldValues(Object instance) 
{ 
    var fields = instance.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly); 
    var fieldValues = new List<Tuple<String, Object>>(); 
    foreach (var f in fields) { fieldValues.Add(new Tuple<string, Object>(f.Name, f.GetValue(instance))); } 
    return fieldValues; 
} 

和即時窗口代碼:

var blah = J.GetFieldValues(this);