Прежде всего, убедитесь, что в вашем MainActivity.cs (Android) / AppDelegate.cs (iOS) Forms.Init
вызывается перед созданием App .
Таким образом, подобный подход был бы правильным подходом
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
Если приведенное выше верно, проверьте поток.У вас должен быть
- Интерфейс в вашем переносимом классе
public interface ISQLite
{
SQLiteConnection GetConnection();
}
- Реализация для каждой платформы (так iOS / Android /UWP), содержащий тег
assembly
Android пример
[assembly: Xamarin.Forms.Dependency(typeof(SqLiteAndroid))]
namespace Your.Namespace.Droid
{<br>
public class SqLiteAndroid:ISQLite
{
public SQLiteConnection GetConnection()
{
//return connection here
}
}
}
и iOS пример,тот же принцип , но обратите внимание на другое пространство имен и сборку
[assembly: Xamarin.Forms.Dependency(typeof(SqLiteiOS))]
namespace Your.Namespace.iOS
{<br>
public class SqLiteiOS:ISQLite
{
public SQLiteConnection GetConnection()
{
//return connection here
}
}
}
- Вызов
DependencyService
для получения соединениянапример, в вашем App.xaml.cs
string sqlConnection= DependencyService.Get<ISQLite>().GetConnection()
Дайте мне знать, если это работает для вас, если нет, пожалуйста, предоставьте еще немного кода.