umbraco - ApplicationEventHandler 中的依赖注入(inject)。漏洞?

标签 umbraco

Umbraco v7.5.8

我在 DI 设置方面遇到了很多问题(如下所示)。

1) 如果构造函数采用参数,则 OnApplicationInitialized 和 OnApplicationStarted(及其他)事件均不会触发。

2) 后台已损坏。无法访问内容节点。异常消息是: 尝试创建“ContentController”类型的 Controller 时发生错误。确保 Controller 具有无参数公共(public)构造函数。

    // Application handlers
    public class UmbracoApplicationEventHandler : IApplicationEventHandler
    {   
        private IMenuManager _menuManager;

        public UmbracoApplicationEventHandler(IMenuManager menuManager)
        {
            _menuManager = menuManager;
        }

        public void OnApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
        {
            ContentService.Saving += UpdateMenu;
        }

        private void UpdateMenu(IContentService sender, SaveEventArgs<IContent> saveEventArgs)
        {
            _menuManager.UpdateMenu();
        }
    }

// Unity config:
public static class UnityConfig
{
    public static void RegisterComponents()
    {
        var container = new UnityContainer();

        container.RegisterType<IMenuManager, MenuManager>();

        GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);
    }

}

// Owin Startup:
public class UmbracoStandardOwinStartup : UmbracoDefaultOwinStartup
{
    public override void Configuration(IAppBuilder app)
    {
        //ensure the default options are configured
        base.Configuration(app);

        UnityConfig.RegisterComponents();
    }
}

最佳答案

请阅读:https://our.umbraco.org/documentation/reference/using-ioc

您需要在 OnApplicationStarted 事件上注册并构建容器,如果您想让它与 Umbraco 一起工作,则不能更早。

关于umbraco - ApplicationEventHandler 中的依赖注入(inject)。漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42483093/

相关文章:

templates - 使用 Umbraco 7.2 GridView ,如何将 GridView 插入到我的模板中?

c# - 安装客户站点umbraco 7 站点后首次运行时出现 owin 错误

asp.net-mvc - 带有 MVC 4 的 Umbraco 6

html - TinyMCE 在 Umbraco 中清理 HTML

html - Umbraco:自定义 RTE 以使用 HTML 标签

asp.net-mvc - 如何在 Umbraco Controller 中调用操作?

asp.net-mvc - MVC 表面 Controller 和 Umbraco 当前节点

asp.net-mvc-3 - 我的 HTML 标签被篡改了

c# - Umbraco 在 xslt 中发布日期

asp.net - 最新版本的 Umbraco CMS 是否使用 asp.net mvc?