1

我正在尝试将 Ninject 与 WPF 一起使用

我的所有视图都有相同的界面

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

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

ETC..

在应用程序开始时,我使用绑定它们

Kernel.Bind<IView>().To<FirstView>();
Kernel.Bind<IView>().To<SecundView>();
........
........

我很感兴趣有没有办法按照惯例注册它们?就像是:

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

1 回答 1

2

您可以使用该BindDefaultInterfaces()方法,它将View名称中包含单词的每个类绑定到您的IView界面:

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

您还可以在文档中查看可用的“BindSomething”选项。

于 2013-03-08T12:42:24.187 回答