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
调用服务
我在我的 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
调用服务