在.NET Core中,内置依赖注入模块使用的程序集是Microsoft.Extensions.DependencyInjection。以下是如何在控制台程序中使用内置依赖注入的步骤:
添加必要的NuGet包
使用NuGet包管理器添加对Microsoft.Extensions.DependencyInjection程序集的引用:
```sh
PM > Install-Package Microsoft.Extensions.DependencyInjection
```
同样地,为了使用日志功能,还需要添加Microsoft.Extensions.Logging.Console程序集:
```sh
PM > Install-Package Microsoft.Extensions.Logging.Console
```
定义服务接口和实现类
创建两个服务接口:
```csharp
public interface IBarService
{
void DoWork();
}
public interface IFooService
{
void Foo();
}
```
为这两个接口创建实现类:
```csharp
public class BarService : IBarService
{
private readonly IFooService _fooService;
public BarService(IFooService fooService)
{
_fooService = fooService;
}
public void DoWork()
{
_fooService.Foo();
}
}
public class FooService : IFooService
{
private readonly ILoggerFactory _loggerFactory;
public FooService(ILoggerFactory loggerFactory)
{
_loggerFactory = loggerFactory;
}
public void Foo()
{
var logger = _loggerFactory.CreateLogger logger.LogInformation("Foo method called."); } } ``` 在`Program.cs`中,手动实例化一个`ServiceCollection`类,并配置依赖注入: ```csharp using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; class Program { static void Main(string[] args) { var services = new ServiceCollection(); // 添加服务实现 services.AddSingleton services.AddSingleton // 解决依赖 var serviceProvider = services.BuildServiceProvider(); // 使用服务 var barService = serviceProvider.GetService barService.DoWork(); } } ``` 通过以上步骤,你可以在.NET Core控制台程序中成功使用内置的依赖注入功能。这种模式使得服务的创建和依赖管理变得简单且集中,有助于提高代码的可维护性和可测试性。配置和使用依赖注入