有没有办法拦截MessageBox.Show(...)
来电,而是返回结果?
解决方案是定义类似
的抽象interface IShowMessage {
MessageBoxResult Show(...);
}
使用类似
的实现class DoShowMessage : IShowMessage {
MessageBoxResult Show(...) { return MessageBox.Show(...); }
}
class NeverShowMessage : IShowMessage {
MessageBoxResult Show(...) { return MessageBoxResult.OK; }
}
并在需要时使用任一实现。但是,在当前的代码库中,由于MessageBox.Show(...)
次呼叫量很大,这是不可行的。不过,我需要摆脱MessageBox模式弹出窗口。
还有其他办法吗?
答案 0 :(得分:-1)
您可以使用Reflection
覆盖MessageBox.Show
方法。
查看此帖子的示例: