如何在ASP.NET Web窗体应用程序中使用类文件?

时间:2013-03-01 17:06:43

标签: asp.net class

我有一个我想在Web窗体应用程序中使用的类文件。这是我在互联网上找到的。我已将它放在App_Code文件夹中,并尝试在事件上使用它

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

所有这些都无济于事。

我是一个绝对的初学者

5 个答案:

答案 0 :(得分: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添加的,但实际上并没有在类中使用。

然后您只需在页面中使用以下内容即可 -

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

    send.SendMailMessage("from@domain.com", "to@domain.com", null, null, "Test e-mail", "Test e-mail");
}

我怀疑你的班级没有编译的事实是绊倒了你。上面的代码在示例项目中都没有问题。

虽然这超出了问题的范围,但我很想让帮助程序类保持静态,因此您不必一直实例化SendEmail的新副本。

有关using指令的详细信息,请参阅http://msdn.microsoft.com/en-us/library/dfb3cx8s.aspxhttp://msdn.microsoft.com/en-us/library/sf0df423.aspx

答案 1 :(得分:1)

我想推荐这些:

  1. 将命名空间添加到您的类文件中。 使用System.Net.Mail;

  2. 调用函数时提供参数(SendMailMessage)。

  3. 将类SendMail作为静态类,将SendMailMessage作为静态函数。

答案 2 :(得分:0)

将您的类文件放在调用sendBtn_Click的代码所在的文件夹中。如果带有处理程序的代码在顶部某处显示namespace SomeNamespace {的行,请确保您复制的类文件也具有相同的行。你的花括号可能会有所不同。

答案 3 :(得分:0)

一般来说,我要做的是在visual studio解决方案中创建一个单独的“Library”项目,并从您的主网站项目中引用它。

您的新SendMail类将进入其中。

有时你似乎只需要一些帮助类,但数量往往会随着时间的推移而增长。随着项目的发展,分离出来也有助于编译速度/组织。

答案 4 :(得分:0)

将您的班级文件更改为:

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

然后在您的网络表单代码后面添加:

using MyCompany;

以下是您可能会发现有用的using namespaces的更多信息。