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,那么您应该考虑将其添加到
新容器()。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>()