Мне нужно проверить, был ли экземпляр какого-либо интерфейса уже создан структурной картой. Я попытался ObjectFactory.GetInstance (), но это создает новый экземпляр T при вызове, и конкретный экземпляр T не существует. Я просто хочу проверить, был ли экземпляр T уже создан (не создавать новый). Мне нужно это, чтобы форсировать создание экземпляров через определенный класс).
Вы должны быть в состоянии сделать это, используя:
ObjectFactory.Model.InstancesOf<IYourInterface>().First().ObjectHasBeenCreated();
Обратите внимание, что это работает только для экземпляров с жизненным циклом Singleton, HttpContext или Hybrid.
Вы не можете спрашивать StructureMap, если он уже создал экземпляр интерфейса.
Однако у него есть много функций управления жизненным циклом, которые позволяют ему контролировать, создает ли он новый экземпляр или возвращает кэшированный экземпляр.что он был создан ранее.
Вы можете сказать StructureMap создать экземпляр HttpContextScoped, чтобы он возвращал тот же экземпляр для данного HTTP-запроса.
Похоже, что вы действительно хотите знать, этокак обрабатывать сеансы NHibernate в веб-приложении с помощью StructureMap.Попробуйте: http://trason.net/journal/2009/10/7/bootstrapping-nhibernate-with-structuremap.html