注入:激活字符串时出错

本文关键字:出错 字符串 激活 注入 | 更新日期: 2023-09-27 18:35:49

我遵循如何设置 SQLite 的指南。在指南中,他使用了如下代码隐藏:

public MainPage()
{
     InitializeComponent();
     // Setup database
     var path = Path.Combine(Path.Combine(ApplicationData.Current.LocalFolder.Path, "test.sqlite"));
     _connection = new SQLiteConnection(new SQLitePlatformWP8(), path); 
}

我试图做同样的事情,而是遵循 MVVM。我以为他会是要走的路:

public override void Load()
{
    var path = Path.Combine(Path.Combine(ApplicationData.Current.LocalFolder.Path, "test.sqlite"));
    Bind<ISQLitePlatform>().To<SQLitePlatformWP8>().WithConstructorArgument("test.sqlite", path);
}

Ninject 的回应是:

No matching bindings are available, and the type is not self-bindable.
Activation path:
  4) Injection of dependency string into parameter databasePath of constructor
  3) Injection of dependency SQLiteConnection into parameter connection of constructor
  2) Injection of dependency ICarRepository into parameter carRepository of constructor
  1) Request for MainVModel

关于如何解决这个问题的任何提示?

注入:激活字符串时出错

SQLiteConnection需要参数而不是SQLitePlatformWP8

因此,请将您的注册更改为:

Bind<SQLiteConnection>.ToSelf().WithConstructorArgument("databasePath", path);
Bind<ISQLitePlatform>().To<SQLitePlatformWP8>();

注意:您需要使用正确的参数名称"databasePath"该名称在SQLiteConnection类的构造函数中定义。