Unity Container 2 from 5 已弃用 AddNewExtension

Unity Container 2 from 5 deprecated AddNewExtension

在 Unity2,我会让这个工厂注册

     iocContainer.AddNewExtension<StaticFactoryExtension>()
        .Configure<IStaticFactoryConfiguration>()
        .RegisterFactory<string>("ApplicationPath", ioc => HttpContext.Current.Request.ApplicationPath);

     iocContainer.AddNewExtension<StaticFactoryExtension>()
        .Configure<IStaticFactoryConfiguration>()
        .RegisterFactory<string>("ApplicationUrl", ioc => ApplicationUrl());

     iocContainer.AddNewExtension<StaticFactoryExtension>()
        .Configure<IStaticFactoryConfiguration>()
        .RegisterFactory<string>("BaseUrl", ioc => BaseUrl());

     iocContainer.AddNewExtension<StaticFactoryExtension>()
        .Configure<IStaticFactoryConfiguration>()
        .RegisterFactory<RequestContext>(ioc => HttpContext.Current.Request.RequestContext);

     iocContainer.AddNewExtension<StaticFactoryExtension>()
        .Configure<IStaticFactoryConfiguration>()
        .RegisterFactory<ApplicationContext>(ioc => ApplicationContext.GetForRequest());

现在这已被弃用,只有 Register 会发生,但我如何注册这些工厂?

只是为了让人们知道,StaticFactory 被 InjectionFactory 取代了,所以

iocContainer.AddNewExtension<StaticFactoryExtension>()
        .Configure<IStaticFactoryConfiguration>()
        .RegisterFactory<string>("ApplicationPath", ioc => HttpContext.Current.Request.ApplicationPath);

会变成

iocContainer
        .RegisterType<string>("ApplicationPath", new InjectionFactory(ioc => HttpContext.Current.Request.ApplicationPath));