Я пытаюсь использовать функцию InstanceScope.HttpSession StructureMap, и у меня проблемы. Я следующий метод я использую для тестирования:Как использовать InstanceScope.HttpSession в StructureMap?
public static class StructureMapTest {
public static T Get<T>() {
ObjectFactory.Configure(x => x.AddRegistry(new RepositoryRegistry()));
return ObjectFactory.GetInstance<T>();
}
}
Мой класс RepositoryRegistry выглядит следующим образом:
public class RepositoryRegistry : Registry {
public RepositoryRegistry() {
ForRequestedType<IClientRepository>()
.CacheBy(InstanceScope.HttpSession)
.TheDefault.Is.OfConcreteType<ClientRepository>();
}
}
Так что в моем коде клиента (контроллер ASP.NET MVC) Я делаю что-то вроде следующие:
public ActionResult InjectionTest() {
return Content(DataProvider.Clients.CreatedDate.ToString());
}
И каждый раз, когда я вызываю этот контроллер даже из того же сеанса, каждый раз я получаю новый экземпляр. Что я здесь делаю неправильно?
Вы попробовали мой ответ? У меня нет этой проблемы, и главное отличие в том, что моя конфигурация находится на global.asax – eglasius