3

質問

下記の2点以外にNinjectをサポートするポイントはありますか?

============

詳細

  1. Employee インスタンスが必要な場合は、コンストラクターにインスタンスを渡す必要はありません。

  2. 2 つのクラスが同じ機能を持ち、これらのクラスに共通のインターフェースを使用する場合があります。

サンプルコード

class Sword : IWeapon
{
    public void Hit(string target) 
    {
        Console.WriteLine("Chopped {0} clean in half", target);
    }
}

class Shuriken : IWeapon
{
    public void Hit(string target)
    {
        Console.WriteLine("Pierced {0}'s armor", target);
    }
}

どちらも同じインターフェースを使用しています。このリンクは、共通のインターフェイスを持つさまざまなクラスがある可能性があることを示しています。

ここをクリックしてリンクを確認してください

しかし、私の場合、共通のインターフェースを使用する2つのクラスがあるという状況はありません

Ninject Dependency Resolverを使用し、以下のコードを使用して、この問題を修正できます

var kernel = new StandardKernel();
kernel.Bind<Practise.Models.IEmployee>().To<Practise.Models.Employee>();
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));

このコードを使用すると、Employee インスタンスをコンストラクターに渡す必要がなくなります。

4

0 に答える 0