2013-03-08 118 views
1

我試圖使用Ninject與WPFNinject數組綁定

我有我的所有視圖

interface IView 
{ 
    string ViewName { get; } 
    object Content{ get; private set; } 
} 

public partial class FirstView : IView 
{ 
    ...... 
} 
public partial class SecundView : IView 
{ 
    ...... 
} 

等相同的接口..

在應用程序的開始我使用

它們綁定
Kernel.Bind<IView>().To<FirstView>(); 
Kernel.Bind<IView>().To<SecundView>(); 
........ 
........ 

我感興趣的是有沒有辦法按照慣例註冊他們? 喜歡的東西:

.Kernel.Bind(
      x => x.FromThisAssembly() 
        .SelectAllClasses().InNamespaceOf<FirstView>() 
        .BindToInterface<IView>); 
+0

你現在的代碼有什麼問題? – nemesv 2013-03-08 12:26:27

+0

.BindToInterface <>不存在:( – Tomislav 2013-03-08 12:28:07

回答

2

可以使用BindDefaultInterfaces()方法,將每一個具有在其名稱中的View字你IView接口類綁定:

.Kernel.Bind(
    x => x.FromThisAssembly() 
      .SelectAllClasses().InNamespaceOf<FirstView>() 
      .BindDefaultInterfaces()); 

您還可以檢查可用「 BindSomething「選項in the documentation