我们如何在ASP.NET Core依赖注入中初始化变量?

时间:2018-09-07 14:34:36

标签: c# asp.net-core dependency-injection

我正在将应用程序迁移到.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中有什么等效功能?

2 个答案:

答案 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);