#if директива DEBUG

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

У меня есть приведенный выше код, но даже когда я публикую на выпуске он все еще использует оператор отладки. Это проект mvc4 C#, и этот код находится в одном из моих классов моделей.

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);

И вы можете иметь значение конфигурации, равное true в веб-конфигурации по умолчанию и false в веб-конфигурации выпуска

Как говорит MoXplod, вы должны сделать это в файле web.config, НО я думаю, что лучше использовать Transformation, чтобы вы могли иметь файл web.config для отладки со значением, которое вам требуется для разработки, и в web.Release.config вы может иметь значения, которые вам нужны в среде PROD. Проверьте http://msdn.microsoft.com/en-us/library/dd465326%28v=vs.110%29.aspx для получения информации о Преобразовании.

Другие вопросы по тегам