В моей инициализации фабрики объектов у меня есть что-то вроде этого:
ObjectFactory.Initialize(factory=>
{
factory.For<User>().Add((IContext context) =>
(User)Session["Current"]).Named("CurrentUser");
factory.For<User>().Add((IContext context) =>
new User()).Named("NewUser");
});
Затем в моих контроллерах я хочу иметь возможность сделать что-то вроде этого:
public MyController (UserCurrentUser) {...}
public MyOthercontroller (User NewUser) {...}
Где некоторый аспект определения конструктора сообщает StructureMap, какой именованный экземпляр использовать.Я искал вокруг, чтобы посмотреть, смогу ли я как-нибудь получить имя параметра из IContext (кажется невозможным) или использовать имя параметра в качестве имени экземпляра (не кажется,возможно).
этот вопрос , по-видимому, описывает способ сделать это путем настройки сопоставления для каждого контроллера в рамках инициализации фабрики объектов.Я бы предпочел что-то более условно-ориентированное, чем явно настраивать его.
Возможна ли такая вещь?