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

问题描述 投票:1回答:2

我正在将我的应用程序迁移到.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中它的等价物是什么?

c# asp.net-core dependency-injection
2个回答
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>();

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);
© www.soinside.com 2019 - 2024. All rights reserved.