程序如何内置注入软件

时间:2025-01-17 23:19:17 网游攻略

在.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控制台程序中成功使用内置的依赖注入功能。这种模式使得服务的创建和依赖管理变得简单且集中,有助于提高代码的可维护性和可测试性。