Shiny + Prism + 平台服务示例

Shiny + Prism + Platform Service Example

我正在尝试更新 Prism 8.1 应用程序以使用 Shiny v2。 在尝试将我的一项服务转变为工作时,我不断收到容器解析错误(使用 Unity)。我不确定注册服务平台实现的模式是什么。作业有一项来自我的平台项目的服务,但在调用 services.RegisterJob() 时我猜平台初始化程序没有 运行.

有人可以 post 举例说明您应该如何向 Shiny 注册平台实现吗?

嗯,我不确定这是否是预期的设计,但我通过这种方式解决了平台服务。

我向我的 ShinyStartup 添加了一个构造函数参数,如下所示:

public Startup(IPlatformInitializer platformInitializer) : base(PrismContainerExtension.Current)
{
    _platformInitializer = platformInitializer;
}

然后在我的 AppDelegate 中我使用了这个: Shiny.ShinyHost.Init(new Shiny.ApplePlatform(), new Startup(new iOSInitializer()));

其中 iOSInitializer 是我的棱镜 IPlatformInitializer

然后在 Startup 我补充说:

protected override void RegisterServices(IContainerRegistry containerRegistry)
{
    _platformInitializer.RegisterTypes(containerRegistry);
    ...
}

至于 IJob 在使用 RegisterJob 时没有解决依赖关系,我使用 IJobManager.Register 将作业注册移动到 App.OnStart 并且它有效。也不确定这是否是预期的设计。

我在调用 RegisterJob 之前完成了所有容器的连接,但它仍然无法解决,所以在 Prism+Shiny 世界中一定有一些隐藏的东西正在发生。