我有两个autofac模块WorldModule和RegionModule(继承Module的separte类)并覆盖了load函数。两者都必须共享使用世界模型(单一)的worldService服务。
这是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);
}
});
});