MAUI中是否可以使用带有参数的构造函数来注册服务?

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

我希望能够在 MAUI 中注册服务,这样我就能够在实例化时传递给它们的构造函数的参数。

我在想这样的事情:

//register service that requires 2 parameters upon instantiation
builder.Services.AddTransient<IMyService, MyService>(parameterType1, parameterType2);

//get an instance of the service that requires 2 parameters
ServiceHelper.GetService<IMyService>(parameter1, parameter2);
c# maui
1个回答
0
投票
Yes sure you can use the lambada expression overload to create parameterised object with different values. Please refer below code dependency injection.

```
// Dependency injection in your startup configs

builder.Services.AddTransient<IMyService, MyService>(() =>     
{
   //ToDo: You can pull your parameter values here, either from the config or constant

// var parameter1 = "FirstValue";
// var parameter2 = "SecondValue";
   return new MyService(parameter1, parameter2);
});


// Resolve dependency in the constructor

public class Test
{
  private readonly IMyService _myService;

  public Test(IMyService myService)
  {
    _myService = myService;
  }
}
```
© www.soinside.com 2019 - 2024. All rights reserved.