【问题标题】:I can't call a method that's in the App_Code folder within the ashx file我无法调用 ashx 文件中 App_Code 文件夹中的方法
【发布时间】:2014-07-27 19:08:52
【问题描述】:

我遇到的问题(不知道是什么原因导致的 - 之前工作正常):

我无法从 ashx 文件调用 App_Code 文件夹中的函数(从 C# 文件后面的常规代码,它工作正常)。

类名是SendMail,方法名是SendEmail

处理程序文件:

类设置为“编译”

方法

是什么原因造成的?

【问题讨论】:

  • 这是一个 ASP.NET 网站项目还是一个 ASP.NET Web 应用程序项目? (“网站”是通过文件 > 新网站创建的,而不是文件 > 新项目)

标签: asp.net handler


【解决方案1】:

您有两个名为SendMail 的类,这让编译器和您都感到困惑。我强烈建议对组件进行更有意义的命名。

如果您的类位于两个不同的命名空间中,则可以通过使用其整个命名空间来显式引用目标类。比如:

YourNamespace.SendMail

然后就可以调用方法了:

bool mailSent = YourNamespace.SendMail.SendEmail(firstName, lastName, ...

【讨论】:

  • "你有两个名为 SendMail 的类" 你怎么知道呢?可以根据我的解决方案举个例子吗
  • @slash1z:我可以通过查看您的代码截图来判断。在第一个屏幕截图中,您定义了一个类:public class SendMail : IHttpHandler。在最后一个屏幕截图中,您定义了另一个类:public class SendMail。虽然我刚刚注意到方法 static,所以我需要更新我的答案的那部分......
  • 我现在有 'App_code\Mail.cs' 'public class MailClass' 和 'public static bool SendEmail',来自处理程序,我这样称呼它:' bool mailSent =MyNameSpace.MailClass。 SendEmail(firstName, lastName.." 并显示错误提示“模糊引用:MyNameSpace.Mailclass X2”
  • @slash1z:在命名空间MyNameSpace 中是否有多个名为MailClass 的类?编译器似乎是这么认为的。
  • 没有。我刚刚搜索它('ctrl-shift-f')只是为了确定+重建解决方案。
【解决方案2】:

检查 sendMail 类文件的命名空间(让它是 npsMail)。然后引用 ashx 文件中的 sendMail 类,如npsMail.sendMail

【讨论】:

    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 2012-10-07
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    相关资源
    最近更新 更多