我在ASP.NET 5应用程序中使用Simple Injector,并且需要从内置的Microsoft DI切换我的Identity
注册。Simple Injector - AddIdentity equivalent
目前,它看起来像这样;
services.AddIdentity<AppUser, AppRole>(o => {
o.Password.RequiredLength = 6;
o.Password.RequireNonLetterOrDigit = false;
o.Password.RequireDigit = true;
o.Password.RequireLowercase = false;
o.Password.RequireUppercase = false;
})
.AddUserStore<UserStore<AppUser>>()
.AddRoleStore<RoleStore<AppRole>>()
.AddDefaultTokenProviders();
我知道如何使用Container.Register<T>
,但我有一个很难找到的简单的喷油器注册这些特殊事物相当于方式。有没有其他人可以做到这一点,可能会有所帮助?
我想这样做,因为我需要使用属性注入;我有一个将使用Quartz.NET
设置一个任务,它实例对自己的东西,这样的 -
public class HelloJob : IJob
{
public void Execute(IJobExecutionContext context)
{
Console.WriteLine("Greetings from HelloJob!");
}
}
// define the job and tie it to our HelloJob class
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("job1", "group1")
.Build();
// Trigger the job to run now, and then repeat every 10 seconds
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(10)
.RepeatForever())
.Build();
// Tell quartz to schedule the job using our trigger
scheduler.ScheduleJob(job, trigger);
我需要做一些事情的HelloJob.Execute
数据库里面,但因为它不是一个Controller
(和即使它是,它不会像一个激活),我不能注入数据库到构造函数。
你想在Simple Injector中注册什么?为什么? – Steven
我需要在不从'Controller'继承的类中使用属性注入。我查找了几天,这似乎不可能与内置的依赖注入,所以我必须探索第三方。 – Ciel
由于某种原因,微软认为唯一一次 - 使用DI是在控制器中。但是我想用'Quartz.NET'运行一些代码,并且要做到这一点,我创建的'IJob'需要到达数据库。我想不出任何其他方式来获取数据库比属性注入或硬编码实例化。所以我正在尝试SimpleInjector。 – Ciel