【问题标题】:MissingMethodException: Method not foundMissingMethodException:找不到方法
【发布时间】:2014-05-27 06:01:35
【问题描述】:

只是无法理解为什么我会收到此错误。我有代码并试图实现索引器:

public class BOCollection<TKey, TValue>
{
    IDictionary<TKey, TValue> _privateDictionary = new Dictionary<TKey, TValue>();
    public TValue this[TKey key]
   {
        get{return _privateDictionary[key];}
        set{_privateDictionary[key] = value;}
    }

//Dictionary Methods
//Other methods
}

没有编译时错误,但出现运行时错误:

找不到方法:'System.Collections.Generic.Dictionary`2 NGC.BO.Base.BOBaseClass.get_Child()'。

【问题讨论】:

  • 这通常是部署问题。检查您的 bin 目录中是否有更多版本的程序集,最好清理 bin 目录并重新部署。发生这种情况,例如如果您最近重命名了程序集。
  • 我试过你的建议,但运行时错误仍然存​​在......
  • 您发布的代码似乎与您给出的错误/堆栈跟踪无关。
  • 这周我也遇到了这种情况。我已完成以下操作: 关闭 Visual Studio 删除应用程序的 bin 目录 删除应用程序的 obj 目录 删除 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ 下的应用程序的临时 ASP.Net 文件(如果您在 32 位环境中运行,请更改框架)在此之后我仍然遇到问题。然后我删除了 c:\user\{yourusername}\AppData\Local\Microsoft\VisualStudio\12.0 下的 ComponentModelCache 然后我能够在本地运行,现在可以远程部署。希望这会有所帮助。

标签: c# .net vb.net indexer


【解决方案1】:

所以另一个解决方案可能是,因为我经历过这个。 我有一个项目取决于其他几个项目。主项目还引用了其他项目之一 - 但是 - 它没有使用它。

所以当我删除主对象中的引用时,问题就消失了。 我有一种感觉,原因是主对象是最后构建的,因此它用自己的 otherproject.dll 覆盖了新构建的 otherproject.dll ...因为它没有被使用。

所以我的建议是: 检查您的参考资料并检查它是否正在项目中使用。如果不是 - 将其全部删除。

【讨论】:

    【解决方案2】:

    您的索引器很好。似乎您的集合中有一些对象缺少Child 属性的必需实现。

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 2018-12-26
      相关资源
      最近更新 更多