以前工作的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(){ ... }
}

当前回答

这可能已经被提到了,但对我来说,问题是这个项目引用了2个nuget包,每个nuget包引用了另一个nuget包的不同版本。

So:

项目-> Nuget A -> Nuget X 1.1

项目-> Nuget B -> Nuget X 1.2

两个版本的Nuget X都有从Project中调用的相同扩展方法。

当我将Nuget A和B更新到引用相同版本的Nuget X时,错误就消失了。

其他回答

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

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

using AutoMapper;

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

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

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

我使用了一种在上面的回复中没有提到的方法来解决这个问题。

在我的例子中,调用类方法的项目的目标项目框架设置不正确。

(调用项目的目标框架不正确。被调用的类/方法的目标框架是正确的,我保持不变)。

当方法需要一个我没有指定的参数时,我就遇到了这个问题

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