我正在将应用程序迁移到.Net Core,所以以前我曾经使用过Simple Injector,但是试图迁移到.Net Core内置的DI。
我有这样的界面
public interface ICheckPeriod
{
int Max { get; set; }
int Seed { get; set; }
}
所以使用SI,我已经做到了,
RegisterInitializer<ICheckPeriod>(checkPeriod =>
{
checkPeriod.Seed = 2;
checkPeriod.Max = 7;
});
ASP.NET Core的DI中有什么等效功能?
答案 0 :(得分:0)
我不确定您的使用方式,但是您可以使用默认值创建一个实现并将其注入。
public interface ICheckPeriod
{
int Max { get; set; }
int Seed { get; set; }
}
public class CheckPeriod : ICheckPeriod
{
public int Max { get; set; } = 2;
public int Seed { get; set; } = 7;
}
services.AddTransient<ICheckPeriod, CheckPeriod>();
答案 1 :(得分:0)
核心DI中的等效解决方案是将类注册为单例
public interface ICheckPeriod
{
int Max { get; set; }
int Seed { get; set; }
}
public class CheckPeriod : ICheckPeriod
{
public int Max { get; set; }
public int Seed { get; set; }
}
var checkPeriod = new CheckPeriod { Max = 2, Seed = 7 };
services.AddSingleton<ICheckPeriod>(checkPeriod);