Сканирование типов с помощью AssembliesFromPath в StructureMap - PullRequest
1 голос
/ 29 января 2010

Я работаю над приложением, в котором мы используем StructureMap 2.5.4 для сканирования каталога, как показано ниже.

ObjectFactory.Configure(scanner => scanner.Scan(x =>
{
    x.AssembliesFromPath(settings.Directory);
    x.AddAllTypesOf(typeof(IScannerConvention)).NameBy(n => n.Name);
}));

По некоторым причинам типы, реализующие IScannerConvention, не зарегистрированы. Если мы изменим AddAllTypesOf на typeof (object), мы увидим, что искомые типы зарегистрированы в контейнере, но это явно не то, что мы хотим сделать. Мы также попытались переместить сборки, содержащие типы, реализующие IScannerConvention, в базовый каталог приложения и использовать x.AssembliesFromApplicationBaseDirectory (). Это работает, и ожидаемые типы зарегистрированы. Но опять же, это не то решение, которое мы можем использовать, так как это вызовет конфликты, перемещая все сборки в базовый каталог приложения. На данный момент я не имею ни малейшего представления о том, что может быть не так.

Любые идеи приветствуются!

1 Ответ

1 голос
/ 29 января 2010

Получил некоторую помощь по этому вопросу в группе Google StructureMap. Вы можете найти решение здесь: http://groups.google.com/group/structuremap-users/browse_thread/thread/73ae145b3766bfb1

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

...