这个问题看起来与之前的问题非常相似,但案例有点不同(可能更好地展示了问题),尽管目标是相同的.
XAML:
<TextBox Text="{local:ExceptionBinding Path=Color1}" />
Run Code Online (Sandbox Code Playgroud)
CS:
public class ExceptionBinding : Binding
{
public ExceptionBinding()
{
ValidationRules.Add(new ExceptionValidationRule());
}
}
Run Code Online (Sandbox Code Playgroud)
VM:
Color _color1;
public string Color1
{
get { return (new ColorConverter()).ConvertToString(_color1); }
set { _color1 = (Color)ColorConverter.ConvertFromString(value); }
}
Run Code Online (Sandbox Code Playgroud)
当此代码独立运行时,显示输入123红色边框TextBox(字段值不变).输入red或#FF0000将删除边框并更新字段值.
问题:在Visual Studio下运行程序时,输入123将抛出ConvertFromString(未记录的顺便说一句):
PresentationCore.dll中出现"System.FormatException"类型的异常,但未在用户代码中处理
附加信息:令牌无效.
如何防止Visual Studio中断程序执行?
当我在Visual Studio调试器中运行我的Win32项目时,我得到了关于哪些DLL被加载,第一次机会异常等的输出的大量冗余.
有没有办法可以抑制这个输出?
有一天,我可能想知道何时加载'C:\ Windows\SysWOW64 \ntdll.dll',但通常我不在乎.当我运行单元测试时,尤其如此,只是想知道是否有任何测试失败.
这些东西不是用控制台应用程序输出的,而是与Windows应用程序一起输出的.举一个我的意思的例子,这是最近的单元测试运行的输出的第一行.
'MyProject.exe': Loaded 'C:\dev\MyProject\Testing\MyProject.exe', Symbols loaded.
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\dbghelp.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\user32.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\lpk.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\usp10.dll'
'MyProject.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll'
... and on and on ...
Run Code Online (Sandbox Code Playgroud)