0

以下のコードを実行すると、このエラー メッセージが表示されます。

エラーメッセージ:

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS1729: 'EmailReader.Pop3Client' does not contain a constructor that takes 0 arguments

Source Error:
Line 148:        private static object @__fileDependencies; 
Line 149:  
Line 150:        [System.Diagnostics.DebuggerNonUserCodeAttribute()] 
Line 151:        public pop3client_aspx() { 
Line 152:            string[] dependencies;

Home.aspx.cs コード:

protected void Button1_Click(object sender, EventArgs e)
{
    Session["email"] = txt_email.Text;
    Session["pwd"] = txt_password.Text;
    Response.Redirect("Pop3Client.aspx");
} 

コードをステップ実行すると、Pop3Client.aspx.cs page_load イベントのブレークポイントが実行されません。これを解決する方法はありますか?

Pop3Client.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{

    int page = 1;
    if (Request.QueryString["page"] == null)
    {
        Response.Redirect("Pop3Client.aspx?page=1");
        Response.Flush();
        Response.End();
    }
    else
        page = Convert.ToInt32(Request.QueryString["page"]);
    try
    {
        Email = Session["email"].ToString();
        Password = Session["pwd"].ToString();
    }
    catch (Exception ex)
    { 
        Response.Redirect("Home.aspx"); 
    }

    int totalEmails;

    List<Email> emails;
    string emailAddress;
    using (EmailReader.Pop3Client client = new EmailReader.Pop3Client(Host, Port, Email, Password, true))
    {
        emailAddress = client.Email;
        client.Connect();
        totalEmails = client.GetEmailCount();
        emails = client.FetchEmailList(((page - 1) * NoOfEmailsPerPage) + 1, NoOfEmailsPerPage);
    }

    int totalPages;
    int mod = totalEmails % NoOfEmailsPerPage;
    if (mod == 0)
        totalPages = totalEmails / NoOfEmailsPerPage;
    else
        totalPages = ((totalEmails - mod) / NoOfEmailsPerPage) + 1;
    for (int i = 0; i < emails.Count; i++)
    {
        Email email = emails[i];
        int emailId = ((page - 1) * NoOfEmailsPerPage) + i + 1;
        TableCell noCell = new TableCell();
        noCell.CssClass = "emails-table-cell";
        noCell.Text = Convert.ToString(emailId);
        TableCell fromCell = new TableCell();
        fromCell.CssClass = "emails-table-cell";
        fromCell.Text = email.From;
        TableCell subjectCell = new TableCell();
        subjectCell.CssClass = "emails-table-cell";
        subjectCell.Style["width"] = "300px";
        subjectCell.Text = String.Format(DisplayEmailLink, emailId, email.Subject);
        TableCell dateCell = new TableCell();
        dateCell.CssClass = "emails-table-cell";
        if (email.UtcDateTime != DateTime.MinValue)
            dateCell.Text = email.UtcDateTime.ToString();
        TableRow emailRow = new TableRow();
        emailRow.Cells.Add(noCell);
        emailRow.Cells.Add(fromCell);
        emailRow.Cells.Add(subjectCell);
        emailRow.Cells.Add(dateCell);
        EmailsTable.Rows.AddAt(2 + i, emailRow);
    }
    if (totalPages > 1)
    {
        if (page > 1)
            PreviousPageLiteral.Text = String.Format(SelfLink, page - 1, "Previous Page");
        if (page > 0 && page < totalPages)
            NextPageLiteral.Text = String.Format(SelfLink, page + 1, "Next Page");
    }
    EmailFromLiteral.Text = Convert.ToString(((page - 1) * NoOfEmailsPerPage) + 1);
    EmailToLiteral.Text = Convert.ToString(page * NoOfEmailsPerPage);
    EmailTotalLiteral.Text = Convert.ToString(totalEmails);
    EmailLiteral.Text = emailAddress;
}
4

2 に答える 2

1

Pop3Clientcodebehindクラスにパラメーターを持つコンストラクターを追加したようです。これは、クラスにパラメーターのないコンストラクターが含まれなくなったことを意味します。ASP.NETでは、ページが最初に読み込まれるときにページがコンパイルされるときに、そのようなコンストラクターが存在する必要があります。

ASP.NETページのコードビハインドにコンストラクターを含める理由はないので、おそらくそれを削除する必要がありますが、パラメーターなしのコンストラクターを追加することもできます。

于 2012-11-13T14:10:23.913 に答える
0

エラーは、どこかにnew EmailReader.Pop3Client(). あなたが示したコードにはそのエラーはありません。

したがって、問題のあるコードは別の場所にある必要があります。

于 2012-11-13T14:05:38.987 に答える