Dependency injection 获取UserStore实例的简单方法

Dependency injection 获取UserStore实例的简单方法,dependency-injection,inversion-of-control,ioc-container,simple-injector,Dependency Injection,Inversion Of Control,Ioc Container,Simple Injector,这是我注册身份类的方式: container.RegisterPerWebRequest<AppDbContext>(); container.RegisterPerWebRequest<IAppUserStore>(() => new AppUserStore(container.GetInstance<AppDbContext>())); container.RegisterPer

这是我注册身份类的方式:

     container.RegisterPerWebRequest<AppDbContext>();

        container.RegisterPerWebRequest<IAppUserStore>(() =>
            new AppUserStore(container.GetInstance<AppDbContext>()));

        container.RegisterPerWebRequest<AppUserManager>();


        container.RegisterPerWebRequest<AppSignInManager>();

        container.RegisterInitializer<AppUserManager>(
            manager => InitializeUserManager(manager, app));
一切都很好,但当我试着输入

 var test = new Container().GetInstance<IAppUserStore>();
var test=newcontainer().GetInstance();
我收到下一个错误:找不到IAppUserStore类型的注册

但是
GetInstance
运行正常

为什么我不能得到这些实例?Container.Verify()编译时没有错误

将起作用,因为您正在请求一个类,并且只要容器能够解析该类型的所有构造函数参数,容器将创建一个类的实例,即使它尚未注册

尽量避免引用外部的容器。如果<代码>会计控制器<代码>需要<代码> IppuSurSturt,则应该考虑将其添加到<代码>帐户控制器< /COD>

的构造函数中。 将起作用,因为您正在请求一个类,并且只要容器能够解析该类型的所有构造函数参数,容器将创建一个类的实例,即使它尚未注册

尽量避免引用外部的容器。如果<代码>会计控制器<代码>需要<代码> IppuSurSturt,则应该考虑将其添加到<代码>帐户控制器< /COD>

的构造函数中。 将起作用,因为您正在请求一个类,并且只要容器能够解析该类型的所有构造函数参数,容器将创建一个类的实例,即使它尚未注册

尽量避免引用外部的容器。如果<代码>会计控制器<代码>需要<代码> IppuSurSturt,则应该考虑将其添加到<代码>帐户控制器< /COD>

的构造函数中。 将起作用,因为您正在请求一个类,并且只要容器能够解析该类型的所有构造函数参数,容器将创建一个类的实例,即使它尚未注册


尽量避免引用外部的容器。如果<代码>会计控制器<代码>需要<代码> IppuSurSturt,那么您应该考虑将其添加到AuthCuxor < /C> >的构造函数中。< /P>您正在新建一个容器。新容器没有任何实例。但是为什么GetInctance可以工作?您是说您可以访问
新容器()。GetInstance()
?因为我不相信您。如果您将
容器设置为构造函数的依赖项,并通过
\u Container.GetInstance()访问
IAppUserStore
,会怎么样您正在新建一个新容器。新容器没有任何实例。但是为什么GetInctance可以工作?您是说您可以访问
新容器()。GetInstance()
?因为我不相信您。如果您将
容器设置为构造函数的依赖项,并通过
\u Container.GetInstance()访问
IAppUserStore
,会怎么样您正在新建一个新容器。新容器没有任何实例。但是为什么GetInctance可以工作?您是说您可以访问
新容器()。GetInstance()
?因为我不相信您。如果您将
容器设置为构造函数的依赖项,并通过
\u Container.GetInstance()访问
IAppUserStore
,会怎么样您正在新建一个新容器。新容器没有任何实例。但是为什么GetInctance可以工作?您是说您可以访问
新容器()。GetInstance()
?因为我不相信您。如果您将
容器设置为构造函数的依赖项,并通过
\u Container.GetInstance()访问
IAppUserStore
,会怎么样
 var test = new Container().GetInstance<IAppUserStore>();
var test = new Container().GetInstance<IAppUserStore>();
Container().GetInstance<AppDbContext>()