У меня есть два автозапускаемых модуля WorldModule и RegionModule (отдельный класс, который наследует Module) и перезаписываю функцию загрузки.Оба должны совместно использовать worldService, сервис, который использует модель мира (singleton).
Это класс worldmodule:
builder.RegisterType<World>().AsSelf()
.AsImplementedInterfaces()
.SingleInstance();
builder.RegisterType<WorldService>().AsImplementedInterfaces();
В регионе я хочу иметь тот же экземпляр worldservice.Это класс модуля региона:
builder.RegisterBuildCallback(c =>
{
Task.Run(async () =>
{
while (true)
{
var x = c.Resolve<IWorldService>() as WorldService;
if (x.RegionWasAssignedToRegionServers == true)
{
c.Resolve<IRegionService> ().AssignAreaMapToServer();
break;
}
await Task.Delay(200);
}
});
});