我在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