私は次のコードを書きましたが、それを改善しようとしています。Unity DI を使用して、具象クラスとそれらが実装するインターフェイスを登録する必要があります。この方法の利点は、追加された新しいクラスを登録し続ける必要がなくなることです。
私はコードを
IUnityContainer コンテナー = 新しい UnityContainer();
// から
// 工場
// container.RegisterType();
// サービス
// container.RegisterType();
// container.RegisterType();
//......
// に
var アセンブリ = AppDomain.CurrentDomain.GetAssemblies()
.Where(x => x.GetName().Name.Contains("Romabravo.ApplicationManager"));
foreach (アセンブリ内の var アセンブリ)
{
var タイプ = assembly.GetExportedTypes();
foreach (型に t を入力)
{
var インターフェイス = t.GetInterfaces().Where(x => x.FullName != null &&
x.FullName.Contains("Romabravo.ApplicationManager")).ToList();
foreach (インターフェイスの var 項目)
{
var interfaceImplementers = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Where(p => item.GetTypeInfo().IsAssignableFrom(p) &&
item.FullName.Contains("Romabravo.ApplicationManager"))
.Select(x => x).Where(x => !x.IsInterface && !x.IsAbstract).ToList();
if (interfaceImplementers != null)
{
foreach (interfaceImplementers の var 実装者)
{
container.RegisterType(アイテム、実装者);
}
}
}
}
}
返却コンテナ;
さらに最適化する方法を探しているだけです。