我们正在构建一个相当复杂的应用程序,我们需要能够在不同的时间发布不同的部分。为了帮助我们解决这个问题,我们正在使用 RSL 和模块。
所以让我来描述一下这些项目(名称已更改以保护无辜者)
核心(rsl)
客户端(应用程序)
groceries (模块) groceriesCore (rsl)
面包店(模块) bakeryCore (rsl)
我们有一个应用程序客户端将应用程序的区域作为模块加载。我们有一个核心 RSL,它执行诸如登录和持有权利之类的事情,并为模块提供 API 以访问这种状态并相互通信。
当我们加载客户端时,我们只希望加载核心 rsl,因为这是当前需要的。当 groceries 模块加载时,我们希望 groceries rsl 加载,同样,当 bakery 模块加载时,我们希望 bakeryCore rsl 加载。
实际上,这不是发生的事情。如果我们在运行时像这样设置项目,核心 rsl 会在应用程序启动时加载,但模块 RSL 不会在模块加载时加载。如果我们从包含杂货模块的项目中运行应用程序,那么他会在应用程序加载时加载,但在模块加载时不会加载。
我们需要一种在模块加载时加载 rsl 的方法。
目前,我们在客户端应用程序中指定了 groceriesCore 和 bakeryCore,因此它们都在客户端加载时加载。这显然不是一个好主意,因为当我们添加另外 30 个部门时,我们不希望在应用程序启动时下载所有这些部门 - 我们只希望在需要时下载它们 - 当应用程序加载时。
我如何实现这一目标?(除了可怕的自定义 rsl 加载器类型的东西)。