Prism-注册共享服务

时间:2019-02-04 21:35:58

标签: service prism ioc-container

很抱歉提出这样一个基本问题,但我坚持并试图找出可能会出错的地方。

如何在共享代码中注册服务(IService和Service文件都在共享代码库中)? 我应该使用单例还是实例?它的代码是什么,因为我不清楚。而且无法在线找到遮阳篷,并且here没有提供注册代码。
如果重要的话,该服务就是数据库服务。

我尝试过:

        protected override void RegisterTypes(IContainerRegistry containerRegistry)
    {
        //services
        containerRegistry.Register<IDbItemService, DbItemService>();
        Debug.WriteLine("registered app");

    }

但是当调用此代码将其放入我的viewmodel的构造函数中时:

IDbItemService dbItemService)

该应用在iPhone上运行时失败,并显示NSInconsistency错误,该错误显示: 预计应用程序窗口在应用程序启动结束时将具有一个根视图控制器。
,这可能是因为构造方找不到服务。

编辑:服务的构造函数还具有针对平台特定代码的“服务”。

谢谢

Edit2:
是的,我现在看到必须注册,因为我也尝试过该函数并复制了它。我同时尝试了Register和Registersingleton,但仍然导致我的应用失败。
其次,该服务是一个共享实现,我试图使用“(IService和Service文件都在共享代码库中)”。

第三,我没有得到任何有关异常的信息,只是我运行了代码,它停止了并给了我这个错误:

Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Application windows are expected to have a root view controller at the end of application launch Native stack trace:

更进一步,我正在尝试根据此github示例来实现数据库。我进行了一些更多的调试,并且在示例中_platformDb.Connection.CreateTableAsync<Incident>().Wait();

中位于共享项目中的IncidentService中的这一行之后,代码崩溃了。

很抱歉,我没有清楚说明问题所在,因为老实说我也不是很清楚。因此,如果您可能有一个有关如何以xamarin形式实现数据库的示例,请按照我的方式进行操作。

0 个答案:

没有答案