如何在 Prism 的依赖注入容器中指定构造函数参数?
How do I specify constructor parameters in my dependency injection container in Prism?
如何在使用 Prism 配置的依赖项中注入构造函数参数?
我覆盖了 RegisterTypes
来注册我的依赖项,如下所示:
public partial class App : PrismApplication
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.Register<IMyService, MyService>();
}
}
但是,MyService
有一些我需要能够传入的构造函数参数。我希望能够将构造函数参数传递给 MyService
,类似于我这样做的方式这在 Unity 中。
containerRegistry.Register<IMyService, MyService>(
new InjectionConstructor("param1", "param2"));
我会创建一个手写 IMyServiceFactory
。这可以传递您的参数 和 服务的潜在依赖性。
public interface IMyServiceFactory
{
IMyService CreateMyService();
}
internal class MyServiceFactory : IMyServiceFactory
{
public IMyService CreateMyService() => new MyService( "param1", "param2" );
}
也看看 。
另一种选择是注册一个实例:
containerRegistry.RegisterInstance<IMyService>(new MyService("param1", "param2"));
如何在使用 Prism 配置的依赖项中注入构造函数参数?
我覆盖了 RegisterTypes
来注册我的依赖项,如下所示:
public partial class App : PrismApplication
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.Register<IMyService, MyService>();
}
}
但是,MyService
有一些我需要能够传入的构造函数参数。我希望能够将构造函数参数传递给 MyService
,类似于我这样做的方式这在 Unity 中。
containerRegistry.Register<IMyService, MyService>(
new InjectionConstructor("param1", "param2"));
我会创建一个手写 IMyServiceFactory
。这可以传递您的参数 和 服务的潜在依赖性。
public interface IMyServiceFactory
{
IMyService CreateMyService();
}
internal class MyServiceFactory : IMyServiceFactory
{
public IMyService CreateMyService() => new MyService( "param1", "param2" );
}
也看看
另一种选择是注册一个实例:
containerRegistry.RegisterInstance<IMyService>(new MyService("param1", "param2"));