1

WPFでNinjectを使用しようとしています

すべてのビューで同じインターフェイスを使用しています

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>);
4

1 に答える 1

2

名前に単語が含まれるすべてのクラスをインターフェイスBindDefaultInterfaces()にバインドするメソッドを使用できます。ViewIView

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

ドキュメントで利用可能な「BindSomething」オプションを確認することもできます。

于 2013-03-08T12:42:24.187 に答える