0
我對溫莎城堡,尤其是IoC都比較陌生。 我註冊我的組件是這樣的:溫莎城堡:瞬態生活需要HttpContext?
public static void Register(IWindsorContainer container)
{
container.Register(Classes.FromAssembly(Assembly.GetAssembly(typeof(GenericBaseRepository)))
.InSameNamespaceAs<GenericBaseRepository>()
.WithService.DefaultInterfaces()
.LifestyleTransient());
}
我然後在一段代碼不具有HttpContext的解決它:
var baseRepository = ContainerManager.Container.Resolve<IBaseRepository>();
(IBaseRepository是由GenericBaseRepository實現的接口)。這種失敗,出現以下消息:
「HttpContext.Current爲null PerWebRequestLifestyle只能在ASP.Net中使用。」
其迷惑我,因爲我選擇的生活方式是短暫的,不PerWebRequest。 當然,HttpContext在計劃任務期間不存在 - 但我並不真正需要它,我只想要一個不會與任何Web請求交互的Repository實例。
那麼,爲什麼Castle Windsor在解決我的組件時堅持要求HttpContext呢?
是的,事實確實如此。在努力爲Castle Core/Windsor獲得正確的.pdb之後,並且(努力進入代碼),這是罪魁禍首。 –