容器层次结构。 CreateChildContainer工作不正确

时间:2016-12-02 09:59:04

标签: c# asp.net-mvc unity-container

为什么容器尝试解析父实例?

container.RegisterType<ICurrentRightholder, CurrentRightholder>(new PerRequestLifetimeManager());
var container = _container.CreateChildContainer();
container.RegisterType<ICurrentRightholder>(new InjectionFactory(c => new BusCurrentRightholder(message.UserId, () => c.Resolve<ISecurityDbContext>())));
var cr = container.Resolve<ICurrentRightholder>();

我收到了错误: 依赖项的解析失败,type =“.... ICurrentRightholder”,name =“(none)”。 在解决时发生异常: 例外情况是:InvalidOperationException - 由于对象的当前状态,操作无效。

但是在控制台应用程序中我尝试了它并且它正常工作。

var container = new UnityContainer();
        container.RegisterType<ICurrentRightholder>(new ContainerControlledLifetimeManager(),
            new InjectionFactory(c => new BusCurrentRightholder(new Guid("8318a7c5-c783-4e0c-b9de-5272e233861c"), () => c.Resolve<ISecurityDbContext>())));
            var child = container.CreateChildContainer();
        child.RegisterType<ICurrentRightholder>(new ContainerControlledLifetimeManager(),
            new InjectionFactory(c => new BusCurrentRightholder(new Guid("9318a7c5-c783-4e0c-b9de-5272e233861c"), () => c.Resolve<ISecurityDbContext>())));
        var cr = child.Resolve<ICurrentRightholder>();

0 个答案:

没有答案