2
我需要Castle.Windsor的每個請求生活方式。這不是一個ASP應用程序,並且本機PerWebRequest生活方式將不起作用。Castle.Windsor每個請求的生活方式:subcontainers vs定製生活方式
加工前我做一個請求(每個請求):代碼
MyContainer = new Container();
MyContainer.Register(
Component.For<ICache>().ImplementedBy<Cache>().LifeStyle.Singleton
);
MyMainStaticContainer.AddChildContainer(MyContainer);
//MyMainStaticContainer contains implementations which
//can be shared across requests
然後某處:
MyContainer.Resolve<ICache>().Items.Add("x", "y");
...
MyContainer.Resolve<ICache>().Items.Get("x");
最後,當工作完成(在ASP它會在Application_EndRequest)
MyContainer.Parent.RemoveChildContainer(MyContainer);
MyContainer.Dispose();
這是相當優雅的(如:不是很多步驟,很容易理解d)它適用於我,但如果執行習慣生活方式會更好(更安全?,更高效?),我很好奇。
由於提前,
Tymek