将ninject membershipreboot转换为Autofac
本文关键字:Autofac 转换 membershipreboot ninject | 更新日期: 2023-09-27 18:08:24
我正在使用成员身份重新启动提供程序,并找到了一个代码示例,但使用了Ninject而不是Autofac。
有人能帮我把Ninject的东西转换成Autofac:吗
kernel.Bind<MembershipRebootConfiguration<CustomUserAccount>>().ToConstant(config);
kernel.Bind<IUserAccountRepository<CustomUserAccount>>().To<CustomRepository>()
.InRequestScope();
kernel.Bind<CustomDatabase>().ToSelf().InRequestScope();
kernel.Bind<IUserAccountQuery>().To<CustomRepository>().InRequestScope();
kernel.Bind<AuthenticationService<CustomUserAccount>>()
.To<SamAuthenticationService<CustomUserAccount>>();
我只知道如何修改其中一个
var builder = new ContainerBuilder();
builder.RegisterType<CustomRepository>().As<IUserAccountQuery>()
.InstancePerLifetimeScope();
一旦我有了它,我会把它提交给MRB的工作人员,也许可以帮助其他人。
根据Autofac文档,我会这样翻译:
var builder = new ContainerBuilder();
builder.RegisterInstance(config)
.As<MembershipRebootConfiguration<CustomUserAccount>>();
builder.RegisterType<CustomRepository>()
.As<IUserAccountRepository<CustomUserAccount>>()
.InstancePerRequest();
builder.RegisterType<CustomDatabase>()
.AsSelf()
.InstancePerRequest();
builder.RegisterType<CustomRepository>()
.As<IUserAccountQuery>()
.InstancePerRequest();
builder.RegisterType<SamAuthenticationService<CustomUserAccount>>()
.As<AuthenticationService<CustomUserAccount>>();
注意,我使用了InstancePerRequest()
,这可能需要为您正在使用的ASP.NET版本添加相应的NuGet包(使用InRequestScope()
时,Ninject也是如此(。