2
我想使用StructureMap的InstanceScope.HttpSession功能,我遇到了問題。我有以下的方法,我使用的測試:如何在StructureMap中使用InstanceScope.HttpSession?
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 2009-02-27 20:32:37