Prism依赖注入接口对象获取空值

Prism dependency injection interface object gets null value

我在我的 app.cs 文件中注册了一个接口作为 prism 依赖注入。

protected override void RegisterTypes()
    {
         Container.RegisterType<ISqliteCallsService, SqliteCallsService>(new ContainerControlledLifetimeManager());
    }

因此,当我创建此依赖项接口的对象时,它在单独的 public class 'SampleClass.cs'.

中变为 null
 public class SampleClass
{
    ISqliteCallsService _sqliteCallsService;
    public SampleClass(ISqliteCallsService sqliteCallsService)
    {
        _sqliteCallsService = sqliteCallsService;
        _sqliteCallsService.SyncOfflineFeedbacktoServer();
    }

这里_sqliteCallsService得到一个空值。

依赖项通常通过构造函数或属性注入,以便 class 具有对依赖项的引用。它们不会像您在此处所做的那样神奇地替换为方法参数。

您需要使用 DI 容器解析 SampleClass,并为已解析的 class 提供一种公开其依赖项的方式,以便它们能够被解析。最简单的解决方案是:

public class SampleClass
{
    private ISqlLitCallService _sqlService;

    public SampleClass(ISqliteCallsService sqlService)
    { 
       _sqlService = sqlService;
    }

    public ConnectivitySyncMainLHBackgroundingCode()
    {
        _sqliteCallsService.SyncOfflineFeedbacktoServer();
    }
}

在你的呼唤中class:

var s = Container.Resolve<SampleClass>();
s.ConnectivitySyncMainLHBackgroundingCode();

我们可以在带有 Prism 应用程序的 MessagingCenter 中使用依赖注入吗?

我有一个很长的 运行 任务,需要使用 DI

调用服务