2014-12-31 34 views
2

我遵循如何設置SQLite的指導。在這篇指南中,他使用這樣的代碼隱藏:Ninject:錯誤激活字符串

public MainPage() 
{ 
    InitializeComponent(); 

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

我試圖做同樣的事情,而不是遵循MVVM。 我認爲他將是要走的路:

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 

如何解決這個任何提示:

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有迴應?

回答

2

SQLiteConnection需要參數而不是SQLitePlatformWP8

因此改變你的登記:

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

注意:您需要使用它在SQLiteConnection類的constructor definied正確的放慢參數名稱"databasePath"

+0

謝謝!這工作和回答我的問題。 Unfortunatley我得到了anoter execption:6)注入依賴IntPtr到構造函數的參數方法 你已經回答了我的問題,我感謝,但也許你也知道這一個=) – Wranglerino

+0

@Wranglerino發佈了一個新問題。你也需要發佈完整的例外,因爲它說明哪個ctor/class缺失的參數。 – BatteryBackupUnit

+0

謝謝!新問題在這裏: http://stackoverflow.com/questions/27727682/ninject-injection-of-dependency-intptr-into-parameter-method-of-constructor – Wranglerino