在模块之间共享实例

时间:2019-03-26 07:55:11

标签: c# autofac autofac-module

我有两个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);
                }
            });
        });

0 个答案:

没有答案