我正在使用会员重启提供商,并找到了代码示例,但使用的是Ninject而不是Autofac。
有人可以帮助我将Ninject内容转换为Autofac:
["abc@gmail.com", "xyz@gmail.com"]
我只知道如何修改其中一个
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>>();
一旦我开始工作,我会将它提交给在MRB工作的人,以便帮助其他人。
答案 0 :(得分:0)
根据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也是如此)。