新しい.netコアの世界に自己完結型ライブラリ/サービスを作りたいと思います。基本的に私はいくつかのSASS製品を持っています:どのようにして、サービスのDLLの依存関係を.netコアのそのレイヤーにバインドしますか?
ServiceProduct1:UI/Composistionルートレイヤーが知る必要のないリポジトリレイヤーを持っています。
ServiceProduct2:UI/Composistionルートレイヤーが知る必要がないリポジトリレイヤーを持っています。それにも電子メールサービスがあります。
これらの2つのserviceProductsは複数のアプリケーションで使用されますが、消費するアプリケーションはリポジトリに隠れたインタフェースをバインドすることを知っている必要があります。また、電子メールサービスはDependendy Injectionを使用しており、サービスによって使用されているにもかかわらず、使用アプリケーションでは にバインドされている必要があります。
public static IKernel LoadAssemblies(IKernel kernel)
{
var type = typeof(INinjectDependency);
var dependencies = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(x => x.GetMatchingTypesInAssembly(y => type.IsAssignableFrom(y) && y.IsClass));
var assemblies = dependencies.Select(Assembly.GetAssembly).Distinct();
kernel.Load(assemblies);
return kernel;
}
その後、すべてのあなたの結合を行うだろう消費サービスに:以前私が結合するもののためのDLLを検索するために再帰を使用しているだろう。ネットコアへ
。
私はもうNinjectを使用していませんが、概念は同じです。現在、dllをビルドするためにスワップしない限り、この方法を使用することはできません。私は私のDLLを公開したくありません。
これを処理する別の方法はありますか?