#if DEBUG指令

时间:2014-06-06 21:15:57

标签: c# compiler-directives

   #if DEBUG
                        mailMessage = new MailMessage("someEmail.com", "someEmail.com", subject, messsageBody);
   #else
                        mailMessage = new MailMessage(Membership.GetUser().Email, cppAccount.Email, subject, messsageBody);
   #endif

我有上面的代码,但即使我在发布时发布它仍然使用debug语句。这是一个mvc4 c#项目,这段代码在我的一个模型类中。

2 个答案:

答案 0 :(得分:2)

这不是做你正在尝试的最好方法。 您应该在web.config中使用应用程序设置执行此操作。

<add key="MailMessageEnabled" value="true" />

然后在你的cs文件中执行类似的操作 -

bool isEnabled = bool.Parse(ConfigurationManager.AppSettings["MailMessageEnabled"]);
mailMessage = isEnabled ? new MailMessage(Membership.GetUser().Email, cppAccount.Email, subject, messsageBody) 
            : new MailMessage("someEmail.com", "someEmail.com", subject, messsageBody);

您可以在默认Web配置中将配置的值设置为true,在发布Web配置中设置为false

答案 1 :(得分:1)

正如MoXplod所说,您应该在web.config文件中执行此操作但我认为最好使用Transformation,这样您就可以使用您开发和web中所需的值来调试您的web.config文件。 .config您可以拥有PROD环境中所需的值。有关转化的信息,请查看http://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx