【问题标题】:Using AssembliesFromPath from StructureMap throws MissingMethodException使用 StructureMap 中的 AssembliesFromPath 会引发 MissingMethodException
【发布时间】:2016-10-14 00:08:27
【问题描述】:

我正在尝试扫描我的主项目的子文件夹中的所有程序集,然后将包含的注册表添加到我的主注册表中,以便在必要时覆盖默认注册表条目并拦截依赖注入的类型。

为此,我创建了以下注册表

public PluginRegistryAdder(string pluginPath)
{
    Scan(x =>
    {
        x.AssembliesFromPath(pluginPath);
        x.LookForRegistries();
    });
}

我打算像这样添加到我的主容器中:

 var pluginRegistries = new PluginRegistryAdder(pluginPath);
 Container.Configure(_ => _.IncludeRegistry(pluginRegistries));

我现在面临的问题是我在使用AssembliesFromPath 时收到此错误并且我不知道如何解决它:

System.MissingMethodException:找不到方法:'Void StructureMap.Graph.IAssemblyScanner.AssembliesFromPath(System.String)'。

谷歌搜索建议我应该使用命名空间StructureMap.Graph,但这并没有解决问题。这是我的 using 语句,其中只有 StructureMap 没有被 Visual Studio 灰显(例如标记为非冗余)(我试图找到丢失的引用,但没有任何帮助):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StructureMap;
using StructureMap.Graph;
using StructureMap.Configuration.DSL;
using StructureMap.Configuration;
using StructureMap.Graph.Scanning;
using StructureMap.Util;

任何建议,我应该尝试什么?!

更新:

  1. 请注意,当我只注释掉 AssembliesFromPath 的行时,解决方案运行良好,尽管 LookForRegistriesAssembliesFromPath 定义在同一类中。
  2. AssembliesFromApplicationBaseDirectory 给了我同样的问题。

【问题讨论】:

    标签: c# .net structuremap structuremap4


    【解决方案1】:

    这个问题似乎是由我的 DI 项目和我的主项目之间的版本不匹配引起的。经过一番尝试,我最终在两个项目中重新安装了最新版本的 StructureMap,问题就消失了。

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多