Unityで行われているように、オンデマンドで他のモジュール(アセンブリ)からサービスをロードできるようにする機能がNInjectにありますか?
6937 次
3 に答える
13
これがあなたが探しているものだと確信しています:
var kernel = new StandardKernel();
kernel.Load( Assembly.Load("yourpath_to_assembly.dll");
Ninject.dll のリフレクターを使用して KernelBase を見ると、この呼び出しによって、読み込まれたアセンブリ内のすべてのモジュールが再帰的に読み込まれることがわかります (Load メソッドは IEnumerable を受け取ります)。
public void Load(IEnumerable<Assembly> assemblies)
{
foreach (Assembly assembly in assemblies)
{
this.Load(assembly.GetNinjectModules());
}
}
于 2009-11-14T05:25:08.860 に答える
3
「LikeUnity」の意味はよくわかりませんが、アセンブリをロードするためにいくつかの異なることができます。Ninject自体は、デフォルトで拡張機能/プラグインのローカルアセンブリをロードします。Ninjectは、アセンブリからNinjectModuleクラスをロードすることもできます。より複雑なことをしたい場合は、Ninject.Extensions.Conventionsプロジェクトを使用して、さまざまなスキャンとタイプバインディングを実行できます。
于 2009-11-25T22:10:55.613 に答える
0
箱から出してアセンブリを非静的にロードすることについて言及している場合は、そうではありません。
これには他にも多くの質問があります。たとえば、プラグインのようなアーキテクチャで Ninject を使用する
于 2009-11-09T08:54:20.807 に答える