Это похоже на вопрос, заданный в StructureMap - Переопределить аргументы конструктора для именованного экземпляра , но отличается тем, что я не знаю тип во время кодирования и, следовательно, не могу использовать универсальную формуof GetInstance ().
Так что пока:
ObjectFactory.With(IFoo).GetInstance<IBar>("foobar");
будет работать, очевидно, нет способа позвонить:
ObjectFactory.With(IFoo).GetInstance(typeof(IBar), "foobar");
У меня есть обходной путь с использованием частногоуниверсальный метод и MakeGenericMethod () для MethodInfo этого частного метода.
Как вы можете себе представить, я не очень доволен этим подходом, но я не вижу другого выхода из ситуации.