2013-03-08 119 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