Files
KJD/MAX.Core/Infrastructure/Bootstrap.cs
T
2026-09-11 19:11:12 +08:00

43 lines
1.2 KiB
C#

using Autofac;
using MAX.Core.Autofac;
using MAX.Core.DependencyInjection;
using MAX.Core.Helpers;
using MAX.Core.Infrastructure;
using MAX.Core.Reflections;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace LittleCow.Core.Infrastructure
{
public class Bootstrap
{
public static void Builder()
{
var Builder = new ContainerBuilder();
Assembly[] assemblies = AppTypeFinder.Assemblies.ToArray();
// Make sure any not specifically registered concrete type can resolve.
IEnumerable<IStartup> startupList = ReflectionHelper.GetInstancesByInterface<IStartup>(assemblies);
int index = 1;
foreach (IStartup item in startupList.OrderByDescending(a => a.Priority))
{
Debug.WriteLine($"Startup - {index++} : {item.GetType()}");
item.Initialize();
}
// Make sure any not specifically registered concrete type can resolve.
IEnumerable<IDependencyRegistrar> ListDependency = ReflectionHelper.GetInstancesByInterface<IDependencyRegistrar>(assemblies);
foreach (IDependencyRegistrar item in ListDependency)
{
item.Register(Builder);
}
IocManager.SetContainer(Builder.Build());
}
}
}