2013-03-01 6 views
0

У меня есть файл класса, который я хотел бы использовать в своем приложении Web Forms. Это тот, который я нашел в Интернете. Я поместил его в папку App_Code и пытаюсь использовать его на событиеКак вы используете файл класса в приложении ASP.NET Web Forms?

protected void sendBtn_Click(object sender, EventArgs e) 
     { 

     } 

класса Файл:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

public class SendEmail 
{ 
    public void SendMailMessage(string from, string to, string bcc, string cc, string subject, string body) 
    { 
     // Instantiate a new instance of MailMessage 
     MailMessage mMailMessage = new MailMessage(); 

     // Set the sender address of the mail message 
     mMailMessage.From = new MailAddress(from); 
     // Set the recepient address of the mail message 
     mMailMessage.To.Add(new MailAddress(to)); 

     // Check if the bcc value is null or an empty string 
     if ((bcc != null) && (bcc != string.Empty)) 
     { 
      // Set the Bcc address of the mail message 
      mMailMessage.Bcc.Add(new MailAddress(bcc)); 
     }  // Check if the cc value is null or an empty value 
     if ((cc != null) && (cc != string.Empty)) 
     { 
      // Set the CC address of the mail message 
      mMailMessage.CC.Add(new MailAddress(cc)); 
     }  // Set the subject of the mail message 
     mMailMessage.Subject = subject; 
     // Set the body of the mail message 
     mMailMessage.Body = body; 

     // Set the format of the mail message body as HTML 
     mMailMessage.IsBodyHtml = true; 
     // Set the priority of the mail message to normal 
     mMailMessage.Priority = MailPriority.Normal; 

     // Instantiate a new instance of SmtpClient 
     SmtpClient mSmtpClient = new SmtpClient(); 
     // Send the mail message 
     mSmtpClient.Send(mMailMessage); 
    } 
} 

Я не могу получить доступ к методам и попытался следующие:

SendEmail send = new SendEmail(); 

var send = new SendEmail(); 

SendEmail.SendMailMessage 

using SendEmail 

Все это безрезультатно.

Я абсолютный новичок

+0

Каковы ошибки, которые вы получаете? –

+0

Я получаю красные строки по кодам, которые я пишу, чтобы получить к ним доступ. –

ответ

0

Поместите файл класса в той же папке, где ваш код, который вызывает sendBtn_Click находится. Если ваш код с обработчиком имеет строку где-то наверху, которая говорит namespace SomeNamespace {, убедитесь, что файл класса, который вы скопировали, также имеет ту же строку. Ваши фигурные скобки могут отличаться.

+0

Я до сих пор не могу получить к нему доступ. –

+0

Вы пытались скомпилировать код? Это точно скажет вам, в чем проблема. Или, если вы наведите указатель мыши на красную линию, вы должны дать вам более подробную информацию. Кто они такие? –

+0

Не удалось найти пространство имен SendEmail. Что-то в этом направлении –

0

Вообще то, что я хотел бы сделать, это создать отдельный проект «Библиотека» в вашем решении для визуальных студий и указать, что из вашего основного проекта веб-сайта.

Ваш новый класс SendMail пойдет в него.

Иногда кажется, что вам просто нужно несколько вспомогательных классов, но количество со временем будет расти. Разделение результатов также помогает с ускорением/организацией компиляции по мере роста проекта.

0

Измените файл класса на:

namespace MyCompany 
{ 
    public class SendEmail 
    { 
      //Class properties and methods here. 
    } 
} 

Тогда в вашем веб-коде формы позади, добавьте:

using MyCompany; 

Вот еще немного информации о using namespaces, которые могут оказаться полезными.

1

Прежде чем что-либо предпринять, вам нужно будет добавить пространство имен System.Net.Mail в файл класса SendEmail.

Это оставит вас с-

using System.Net.Mail; 

public class SendEmail 
{ 
    public void SendMailMessage(string from, string to, string bcc, string cc, string subject, string body) 
    { 
     // Instantiate a new instance of MailMessage 
     MailMessage mMailMessage = new MailMessage(); 

     // Set the sender address of the mail message 
     mMailMessage.From = new MailAddress(from); 
     // Set the recepient address of the mail message 
     mMailMessage.To.Add(new MailAddress(to)); 

     // Check if the bcc value is null or an empty string 
     if ((bcc != null) && (bcc != string.Empty)) 
     { 
      // Set the Bcc address of the mail message 
      mMailMessage.Bcc.Add(new MailAddress(bcc)); 
     }  // Check if the cc value is null or an empty value 
     if ((cc != null) && (cc != string.Empty)) 
     { 
      // Set the CC address of the mail message 
      mMailMessage.CC.Add(new MailAddress(cc)); 
     }  // Set the subject of the mail message 
     mMailMessage.Subject = subject; 
     // Set the body of the mail message 
     mMailMessage.Body = body; 

     // Set the format of the mail message body as HTML 
     mMailMessage.IsBodyHtml = true; 
     // Set the priority of the mail message to normal 
     mMailMessage.Priority = MailPriority.Normal; 

     // Instantiate a new instance of SmtpClient 
     SmtpClient mSmtpClient = new SmtpClient(); 
     // Send the mail message 
     mSmtpClient.Send(mMailMessage); 
    } 
} 

Ни один там не требуется, они добавляются по умолчанию с помощью Visual Studio, но на самом деле не используются в классе других «usings».

Тогда вы можете просто использовать его в вашем PAGE-

protected void sendBtn_Click(object sender, EventArgs e) 
{ 
    SendEmail send = new SendEmail(); 

    send.SendMailMessage("[email protected]", "[email protected]", null, null, "Test e-mail", "Test e-mail"); 
} 

Я подозреваю, что тот факт, ваш класс не компиляцией было то, что отключение вас. Вышеприведенный код построен без проблем в примере проекта.

Несмотря на то, что вопрос невозможен, я бы попытался сделать классы-помощники статичными, поэтому вам не нужно постоянно создавать новую копию SendEmail.

См. http://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx и http://msdn.microsoft.com/en-us/library/sf0df423.aspx для получения более подробной информации об использовании директивы.

1

Я хотел бы рекомендовать следующие:

  1. Добавить пространство имен в файл класса. с использованием System.Net.Mail;

  2. Укажите аргументы при вызове функции (SendMailMessage).

  3. Сделать класс SendMail статическим классом, SendMailMessage как статическую функцию.

Смежные вопросы