我是一名Windows窗体程序员。我们通常将功能编程到用户控件中。 许多时间功能需要发送电子邮件。
我想做一些事情: - 如果我设置标志“此应用程序正在测试模式下运行”。然后从应用程序发送的所有邮件(来自任何用户控件) 应该被阻止。
请记住,我不想在现有的用户控件中进行任何更改。或发送lib的邮件。我希望这只能在容器中完成,或者更确切地说在Program.cs文件中完成。
由于
答案 0 :(得分:4)
您可以使用Inversion of Control。有,例如,一个IMailer接口,由RealMailer和TestingMailer实现。 RealMailer实际上会发送一封电子邮件,而TestingMailer会默默地发送邮件。配置注入RealMailer的Production配置,以及注入TestingMailer的Testing配置。
答案 1 :(得分:0)
这些设置应该放在你的app.config文件中,在这种情况下是smtp服务器地址。然后只需将该值更改为为测试环境清空,这样您的邮件便无处可去。
答案 2 :(得分:0)
如果您想将其关闭以进行本地调试,那么您可以这样做。
#if DEBUG
CallMethod();
#endif
否则,Matthew Flaschen的答案很有效。