我们正在构建一个相当复杂的应用程序,我们需要能够在不同的时间发布不同的部分。为了帮助我们解决这个问题,我们使用了RSL和模块。
因此,让我来描述一下这些项目(为了保护无辜,已经更改了名称)
核心(rsl)
客户端(应用程序)
杂货(模块) groceriesCore (rsl)
面包房(模块) bakeryCore (rsl)
我们有一个应用程序客户端,它将应用程序的各个区域作为模块加载。我们有一个核心的RSL,它做一些事情,比如登录和保存权限,并为模块提供一个API来访问这种状态,也可以相互通信。
当我们加载客户端时,我们只希望加载核心rsl,因为这是当前所需的。当杂货模块加载时,我们希望加载杂货rsl,同样,当面包房模块加载时,我们希望加载bakeryCore rsl。
在现实中,这不是发生的事情。如果我们像这样设置项目,在运行时,核心rsl在应用程序启动时加载,但模块rsl在加载模块时不加载。如果我们从包含杂货模块的项目中运行应用程序,则rsl在应用程序加载时加载,而不是在模块加载时加载。
我们需要一种在模块加载时加载rsl的方法。
目前,我们在客户端应用程序中指定了groceriesCore和bakeryCore,以便它们都在客户端加载时加载。这显然不是一个好主意,因为当我们添加另外30个部门时,我们不希望在应用程序启动时下载所有这些部门-我们只希望在需要时下载它们-当应用程序加载时。
我该如何实现这一点?(除了可怕的自定义rsl加载器类型)。
发布于 2010-02-23 22:07:40
RSL只能在应用程序启动时加载。我过去所做的就是让像你的groceriesCore这样的东西成为另一个模块,而不是RSL。然后,您只需将其指定为食品杂货模块的依赖项,以便当您想要加载食品杂货时,它将检查是否加载了groceriesCore模块,如果需要,则加载它。
管理模块的依赖关系不是Flex为您管理的事情。因此,您将不得不手动完成此操作。或者,也许Potomac Framework会帮助它实现OSGI式的方法。
https://stackoverflow.com/questions/2317449
复制相似问题