/ / Konwertuj ninject membershipreboot na Autofac - c #, ninject, autofac

Konwertuj ninety membershipreboot na Autofac - c #, ninject, autofac

Gram z dostawcą restartowania członkostwa i znalazłem przykład kodu, ale używając Ninject zamiast Autofac.

Czy ktoś mógłby mi pomóc przekonwertować rzeczy Ninject na 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>>();

Wiem tylko, jak zmodyfikować jedną z nich

var builder = new ContainerBuilder();
builder.RegisterType<CustomRepository>().As<IUserAccountQuery>()
.InstancePerLifetimeScope();

Kiedy już to zadziała, przekażę go facetom pracującym nad MRB, aby być może pomóc komuś innemu.

Odpowiedzi:

0 dla odpowiedzi № 1

Zgodnie z dokumentem Autofac tłumaczę to tak:

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>>();

zauważ, że użyłem InstancePerRequest() co prawdopodobnie wymaga dodania odpowiedniego pakietu NuGet dla używanej edycji ASP.NET (podobnie jak Ninject podczas używania InRequestScope()).