試圖將需要傳遞給控制器方法的依賴項作爲接口註冊,並在做了一些研究之後,它設置在Sitecore的控制器,將引發此errpr找不到用於支持Sitecore.Mvc.Controllers.SitecoreController服務的組件 - Sitecore 7.2
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container.Kernel));
container.Register(Classes.FromThisAssembly().BasedOn<IController>().LifestyleTransient().Configure(x => x.Named(x.Implementation.FullName)));
代碼段是
public ActionResult Footer(ISomeFactory someFactory) {}
我使用玻璃Mapeer和溫莎城堡的國際奧委會。
謝謝馬特。這解決了這個問題。但是現在我得到了[MissingMethodException:無法創建接口的實例。對象類型'Glass.Mapper.Sc.ISitecoreContext'。]。我認爲Windsor Castle和MVC 5存在問題。我甚至刪除了Glass Mapper和Solr的集成,並試圖在應用程序啓動時在GLobal.ascx.cs文件中執行此操作,但仍然出現此錯誤。無論是MVC 5與WindsorCastle不兼容還是有其他一些事情我缺失 – 2014-10-17 15:52:12
Glass,Castle和MVC 5一起工作得很好。這個錯誤提示Castle正試圖通過界面來解析界面。你可以通過註冊ISitecoreContext來解決這個問題。我用更全面的register()方法更新了我的答案。 – 2014-10-17 18:48:44
感謝馬特和你是對的,所有這些一起工作,但一旦你明白髮生了什麼事情。我在GlassMapperScCustom中做了一些改變,使用了GM的DependencyResolver.CreateStandardResolver()中的容器。這導致取消註冊Sitecore控制器。我會寫答案,以便其他人閱讀。 – 2014-10-17 18:53:47