43 lines
1.2 KiB
C#
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());
|
|
}
|
|
}
|
|
|
|
}
|