在逐句通過我的代碼時,我發現某些行忽略了DebuggerStepThrough屬性。它似乎是在linq聲明中。爲什麼在linq語句中忽略DebuggerStepThrough?
這裏是一個類似SO:DebuggerStepThrough being ignored
該代碼被踩踏通過處於調試模式。它與下面的ReflectionHelper方法在相同的解決方案中。項目引用是通過項目而不是在其他地方的編譯DLL,即與項目相同的輸出bin/debug文件夾。沒有別的不尋常的事情發生,這可能表明正在使用的程序集是不同的,因爲在項目兩端進行代碼更改時會注意到。
因此,當我逐步使用F11時,它進入下面的代碼。
我已在效法我public static class ReflectionHelper
[DebuggerStepThrough]
public static bool Exists(string propertyName, object srcObject)
{
PropertyInfo propInfoSrcObj = srcObject.GetType().GetProperties()
.FirstOrDefault(p => p.Name == propertyName); //-- Debugger stops here
return (propInfoSrcObj != null);
}
我怎樣才能避免這種代碼通過步進?我目前的工作是SHIFT + F11在繼續我的調試之前退出F11。
這種情況發生的另一個例子是這段代碼。
string databaseNamePair = split.Find(f => f.StartsWith("Initial Catalog"));
大聲笑,我已經擁有了它。我把它變成了'fugly'代碼! R#8函數'將LINQ轉換爲代碼'。 –