带有MvvmCross的SQLite-net-pcl问题

时间:2018-04-08 13:31:18

标签: sqlite xamarin service mvvmcross

我正在尝试使用SQlite-net-pcl存储一些数据。 当我从不同的帖子中读到时,我必须在我的主项目上创建一个接口服务,然后在我的Android和iOS项目上实现该服务。 当我尝试在Android或iOS项目上实现界面时会出现问题:

namespace DemoApplication.iOS
{
   public class LocalFileHelperService : ILocalFileHelperService
   {

   }
 }
  

错误CS0246类型或命名空间名称'ILocalFileHelperService'   无法找到(您是否错过了使用指令或程序集   引用?)

但是当我尝试添加引用时:

using DemoApplication.Services;

我收到以下错误:

  

错误CS0234类型或命名空间名称“服务”不存在于   命名空间'DemoApplication'(你错过了一个程序集   引用?)

我做错了吗?我记得在Android和iOS平台上使用另一个正确形式的框架来实现服务,但现在在MvvmCross中似乎有所不同。

有谁知道这样做的正确方法是什么?

提前致谢。

编辑:

我附上了界面定义。

namespace DemoApplication.Services
{
    public interface ILocalFileHelperService
    {
        string GetLocalFilePath(string fileName);
    }
}

1 个答案:

答案 0 :(得分:1)

有时,在您的解决方案中添加新的.NET Standard类库时,Visual Studio的intellisense不会从参考项目中获取.NET Standard类库中代码的更改。重新启动Visual Studio似乎解决了这个问题。

关于你的第二个问题

  

你知道我如何注册Interfece或者mvvmcros   项目没有必要吗?

这是必要的。 MvvmCross在Setup.cs类中提供options,允许您根据核心项目中定义的公共接口注册特定于平台的实现。

  • InitializeFirstChance
  • InitializeLastChance
  

对于许多对象,选择何时初始化 - 第一个或最后一个 -   无所谓。对于其他人来说,关键的选择是服务   需要在创建应用程序之前或之后可用   初始化。

示例

protected override void InitializeFirstChance()
{
    Mvx.LazyConstructAndRegisterSingleton<ILocalFileHelperService, LocalFileHelperService >();
}