据我所知,Glass Mapper v4现在可以与任何IoC容器一起使用.但我正在努力寻找如何实现这一目标的代码示例.
我希望能够注册玻璃组件并使用Unity将它们注入我的控制器,例如:
public class SearchController : Controller { private readonly ISitecoreContext _context; //Inject via Unity public SearchController(Glass.Mapper.Sc.ISitecoreContext context) { _context = context; } }
有人可以提供一个代码示例,说明如何将Glass与Unity连接起来吗?
解决方法
您实际上不需要IoC容器来配置Glass的基本映射设置.
相反,为ISitecoreContext和自定义MVC控制器工厂配置注册,覆盖必需的ReleaseController和GetControllerInstance方法.
我的Unity有点生疏,但是这样的东西(你可能会发现更简单的东西):
IUnityContainer container = new UnityContainer() container.RegisterType<ISitecoreContext,SitecoreContext>(new HierarchicalLifetimeManager(),new InjectionFactory(x => new SitecoreContext()));