.net core [LifeTime(ServiceLifetime.transient)] 如何使用
时间: 2024-03-08 10:46:43 浏览: 77
在 .NET Core 中,可以使用生命周期(Lifetime)来控制依赖注入服务的生存期。其中,Transient Lifetime 表示瞬时生命周期,每次请求服务时都会创建一个新的实例。下面是一个简单的示例:
```csharp
public interface IMyService
{
void DoSomething();
}
public class MyService : IMyService
{
public void DoSomething()
{
Console.WriteLine("MyService is doing something.");
}
}
public class MyClass
{
private readonly IMyService _myService;
public MyClass(IMyService myService)
{
_myService = myService;
}
public void DoWork()
{
_myService.DoSomething();
}
}
```
在上面的代码中,定义了一个接口 `IMyService` 和一个实现类 `MyService`,以及一个使用该服务的类 `MyClass`。接下来,我们可以在 Startup.cs 中设置 Transient Lifetime:
```csharp
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IMyService, MyService>();
services.AddTransient<MyClass>();
}
```
然后,在需要使用 `MyClass` 的地方,可以通过依赖注入获取它的实例:
```csharp
public class HomeController : Controller
{
private readonly MyClass _myClass;
public HomeController(MyClass myClass)
{
_myClass = myClass;
}
public IActionResult Index()
{
_myClass.DoWork();
return View();
}
}
```
这样,每次请求 `MyClass` 的实例时,都会创建一个新的 `IMyService` 的实例。
阅读全文