Передача аргументов конструктора в именованный экземпляр в структурной карте, где тип известен только во время выполнения - PullRequest
0 голосов
/ 22 ноября 2010

Это похоже на вопрос, заданный в StructureMap - Переопределить аргументы конструктора для именованного экземпляра , но отличается тем, что я не знаю тип во время кодирования и, следовательно, не могу использовать универсальную формуof GetInstance ().

Так что пока:

ObjectFactory.With(IFoo).GetInstance<IBar>("foobar");

будет работать, очевидно, нет способа позвонить:

ObjectFactory.With(IFoo).GetInstance(typeof(IBar), "foobar");

У меня есть обходной путь с использованием частногоуниверсальный метод и MakeGenericMethod () для MethodInfo этого частного метода.

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

1 Ответ

0 голосов
/ 22 ноября 2010

Требуемый метод - GetNamedInstance (), который недоступен при использовании метода With (). Я уверен, что добавить его будет несложно, возможно, вы могли бы написать Джереми Миллеру и посмотреть, сможет ли он добавить его в StructureMap 3. Или отправить патч:)

...