Я новичок в Xamarin Forms и Xamarin в целом. Возможно, я неправильно понимаю, как работает архитектура, или, может быть, я следую примеру разных примеров в Интернете. Я стараюсь использовать как можно больше Portable Class Library
.Xamarin Forms Использование заявлений не доступно
Мои пакеты nuget: Xamarin.Forms
и SQLite.Net-PCL
. Они установлены на всех, Droid, ios, windows и PCL. Определенно, самая последняя проверенная самая высокая загрузка. Я следую за эти руководства
https://developer.xamarin.com/guides/xamarin-forms/working-with/databases/
На SQLite_Droid реализации интерфейса SQLite, у меня нет доступа к Xamarin.Forms, используя оператор или тот, который имеет интерфейс, Здесь весь код в проекте Native_PCL
.
ISQLite.cs
using SQLite.Net;
namespace Native_PCL.DataServices
{
interface ISQLite
{
SQLiteConnection GetConnection();
}
}
DataCalls.cs
using System.Linq;
using SQLite.Net;
using Xamarin.Forms;
using Native_PCL.Data;
namespace Native_PCL.DataServices
{
public class DataCalls
{
static object locker = new object();
SQLiteConnection db;
public DataCalls()
{
db = DependencyService.Get<ISQLite>().GetConnection();
db.CreateTable<UserPreferences>();
db.CreateTable<Orders>();
}
public void SubmitData(Orders order, out string update)
{
lock (locker)
{
if (!db.Table<Orders>().Any(x => x.foodName == order.foodName))
{
db.Insert(order);
update = order.foodName;
}
else { update = order.foodName + " was already in your Order"; }
}
}
}
}
Вот весь код в проекте Native_PCL.Droid
SQLite_Droid.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content; // for some reason all of the System. and Android. are showing white. Usually unused statements are grayed out!
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Native_PCL;
using Native_PCL. ; /// only .Droid is registering
using Xamarin.Forms; //Intellisense does not pick this up
namespace Native_PCL.Droid.DataImplement
{
public class SQLite_Droid : Native_PCL.DataServices.ISQLite /// All white, Doesn't register the ISQLite as an Interface.
{
}
}
Я воссоздал весь проект. Я должен делать что-то совершенно неправильное.