以前工作的asp.net webforms应用程序现在抛出这个错误:

系统。MissingMethodException:方法未找到

DoThis方法在同一个类上,它应该可以工作。

我有一个通用的处理程序,这样:

public class MyHandler: IHttpHandler
{
    public void Processrequest(HttpContext context)
    {
      // throws error now System.MissingMethodException: 
      // Method not found.
      this.DoThis(); 
    }

    public void DoThis(){ ... }
}

当前回答

在我的案例中,这是一个复制/粘贴的问题。我以某种方式结束了我的映射配置文件的PRIVATE构造函数:

using AutoMapper;

namespace Your.Namespace
{
    public class MappingProfile : Profile
    {
        MappingProfile()
        {
            CreateMap<Animal, AnimalDto>();
        }
    }
}

(注意演员面前少了一个“公众”)

它编译得非常好,但是当AutoMapper尝试实例化概要文件时,它不能(当然!)找到构造函数!

其他回答

我在同一个程序集中引用了一个文件,而不是一个单独的dll,就发生了这种情况。一旦我从项目中排除了该文件,然后又将其包含进来,一切都工作得很好。

当DLL的旧版本仍然在某个地方徘徊时,就会出现这个问题。确保部署了最新的程序集,并且某些文件夹中没有隐藏重复的旧程序集。最好的办法是删除所有构建的项目,然后重新构建/重新部署整个解决方案。

检查你的推荐信!

确保在解决方案项目中始终指向相同的第三方库(不要只信任版本,要查看路径)。

例如,如果你在一个项目中使用iTextSharp v.1.00.101,你在其他地方NuGet或引用iTextSharp v1.00.102,你会得到这些类型的运行时错误,以某种方式渗透到你的代码。

我在所有3个项目中更改了对iTextSharp的引用,以指向相同的DLL,一切都正常工作。

你试过把它关掉再打开吗?玩笑归玩笑,重启电脑才是真正让我成功的方法,其他答案中都没有提到。

肯定是微软的参考bug。

我清理,重建了我所有的库,仍然有同样的问题,无法解决这个问题。

我所做的就是关闭Visual Studio应用程序,然后重新打开它。这招奏效了。

令人沮丧的是,这么简单的一个问题却要花这么长时间来解决,因为你不会想到它会是这样的。