据我所知,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联系起来吗?
答案 0 :(得分:2)
您实际上不需要IoC容器来配置Glass的基本映射设置。
相反,请为ISitecoreContext
和自定义MVC控制器工厂配置注册,以覆盖必需的ReleaseController
和GetControllerInstance
方法。
我的Unity有点生疏,但是这样的东西(你可能会发现更简单的东西):
IUnityContainer container = new UnityContainer()
container.RegisterType<ISitecoreContext, SitecoreContext>(new HierarchicalLifetimeManager(), new InjectionFactory(x => new SitecoreContext()));