2025-02-05 14:50:07 +03:00
|
|
|
using mROA.Abstract;
|
|
|
|
|
|
|
|
|
|
namespace mROA.Implementation.Bootstrap;
|
|
|
|
|
|
2025-02-07 16:53:12 +03:00
|
|
|
public interface IRoaBuilder
|
2025-02-05 14:50:07 +03:00
|
|
|
{
|
|
|
|
|
void Build();
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-07 16:53:12 +03:00
|
|
|
public class FullMixBuilder : IRoaBuilder
|
2025-02-05 14:50:07 +03:00
|
|
|
{
|
2025-02-07 16:53:12 +03:00
|
|
|
public List<IInjectableModule> Modules { get; } = new();
|
2025-02-05 14:50:07 +03:00
|
|
|
public void Build()
|
|
|
|
|
{
|
|
|
|
|
foreach (var module in Modules)
|
|
|
|
|
foreach (var injection in Modules)
|
|
|
|
|
module.Inject(injection);
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-07 16:53:12 +03:00
|
|
|
public T? GetModule<T>()
|
2025-02-05 14:50:07 +03:00
|
|
|
{
|
|
|
|
|
return Modules.OfType<T>().FirstOrDefault();
|
|
|
|
|
}
|
|
|
|
|
}
|