Использование AssembliesFromPath из StructureMap вызывает исключение missingmethod

#c# #.net #structuremap #structuremap4

#c# #.net #structuremap #structuremap4

Вопрос:

Я пытаюсь просканировать все сборки во вложенной папке моего основного проекта, а затем добавить содержащийся реестр в мой основной реестр, чтобы переопределить записи реестра по умолчанию, где это необходимо, и перехватить типы для внедрения зависимостей.

Для этого я создаю следующий реестр

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

который я планирую добавить в свой основной контейнер следующим образом:

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

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я получаю эту ошибку при использовании AssembliesFromPath и не знаю, как ее исправить:

System.Исключение Missingmethod: метод не найден: ‘Аннулирует StructureMap.Graph.IAssemblyScanner.AssembliesFromPath(Система.Строка)’.

Поиск в Google подсказывает, что я должен использовать пространство 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 помощью, решение работает просто отлично, хотя LookForRegistries и определено в том же классе, AssembliesFromPath что и .
  2. AssembliesFromApplicationBaseDirectory у меня та же проблема.

Ответ №1:

Эта проблема, похоже, была вызвана несоответствием версий между моим проектом DI и моим основным проектом. После некоторых попыток я закончил переустановкой новейшей версии StructureMap в обоих проектах, и проблема исчезла.