Я использую плагин WPF Sqlite в MVVMCross, но я хочу переопределить каталог, в который записана база данных. Я написал пользовательский ISQLiteConnectionFactory
, который в настоящее время проживает в моем проекте WPF загрузчика:Как переопределить регистрацию плагина в MVVMCross
internal class CustomMvxWpfSqLiteConnectionFactory : ISQLiteConnectionFactory
{
const string DirectoryName = "ProductName";
public ISQLiteConnection Create(string address)
{
var appData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
var dir = Path.Combine(appData, DirectoryName);
Directory.CreateDirectory(dir);
var path = Path.Combine(dir, address);
return new SQLiteConnection(path, SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.Create, false);
}
}
То, что я не могу понять, как переопределить Mvx.RegisterSingleton<ISQLiteConnectionFactory>(new MvxWpfSqLiteConnectionFactory());
, что Cirrious.MvvmCross.Plugins.Sqlite.Wpf.Plugin
делает.
Мой проект PCL App
регистрирует однопользовательский сервис, который зависит от ISQLiteConnectionFactory
во время инициализации, поэтому я, очевидно, хочу переопределить регистрацию МОК до этого. Но независимо от того, что я делаю, регистрация плагина MvxWpfSqLiteConnectionFactory
, а не моя собственная регистрация CustomMvxWpfSqLiteConnectionFactory
, кажется, имеет приоритет.
Я пробовал поместить свой регистрационный вызов во всевозможные переопределения в моем WPF Setup.cs, но до сих пор ничего не работало.