在asp.net核心中使用参数注入

时间:2016-12-07 07:40:38

标签: asp.net-core

如何在startup.cs中使用参数注入服务。如何注入SqlConneciton?

public class AirportService :  IAirportService
{
    public AirportService(SqlConnection con)
    {
        var airportRepository = new AirportRepository<Airport>(con);
    }
}

1 个答案:

答案 0 :(得分:2)

首先,你必须像这样注册你的服务:

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddTransient<IMyService, MyService>();
}

只有构造函数注入才有可能。在您的示例中,您需要使用接口注册SqlConnection(如上例所示)。然后框架将在注入时创建新实例。

关于依赖注入,我建议你先来看看Dependency Injection

BUT!我不知道注入SqlConnection是一个好方法。我建议创建某种工厂ConnectionFactory: IConnectionFactory,注入它,然后使用ConnectionFactory创建新连接(从池中取出一个)。