我正在尝试扫描我的主项目的子文件夹中的所有程序集,然后将包含的注册表添加到我的主注册表中,以便在必要时覆盖默认注册表条目并拦截依赖注入的类型。
为此,我创建了以下注册表
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)'。
谷歌搜索建议我应该使用 namespace 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;
有什么建议,我应该尝试什么?!
更新:
- 请注意,当我只用 注释掉这一行时
AssembliesFromPath
,解决方案运行得很好,尽管LookForRegistries
它与AssembliesFromPath
. AssembliesFromApplicationBaseDirectory
给我同样的问题。