我正在将我的应用程序迁移到.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中它的等价物是什么?
我不确定你是如何使用它的,但是你可以用默认值创建一个实现并注入它。
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>();
核心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);