Получить экземпляр из StructureMap по имени типа - PullRequest
3 голосов
/ 11 марта 2010

Есть ли способ запросить экземпляр из ObjectMactory StructureMap по строковому имени типа? Например, было бы неплохо сделать что-то вроде этого:

var thing = ObjectFactory.GetInstance("Thing");

Вариант использования здесь - это сценарий обмена сообщениями, в котором сообщение является очень общим и содержит только название задачи. Обработчик получает сообщение, получает имя задачи из сообщения и получает имя типа связанного исполнителя задач из базы данных конфигурации. StructureMap сканирует все сборки в каталоге, и одна из них (предположительно) будет содержать тип, возвращенный из базы данных конфигурации, который затем необходимо создать.

Другая возможность - получить экземпляр Type, выполнив следующие действия:

var type = Type.GetType("Thing");

Но проблема в том, что сборка может или не может быть загружена в AppDomain, так что вызов отражения не всегда возможен.

1 Ответ

0 голосов
/ 30 августа 2010

У меня недавно была та же проблема: GetType не возвращает событие типа, хотя StructureMap правильно загрузил его из отсканированной сборки.

Моя проблема заключалась в том, что я не использовал полное имя сборки, и я предполагаю, что без этого метод GetType просто просматривает текущую сборку.

В любом случае добавление полного имени решило мою проблему.

Надеюсь, это поможет.

Ian

...