是否可以覆盖继承模块的延迟绑定配置?
这是一个例子:
在模块中,我想使用,延迟绑定声明如下moduleA.gwt.xml
:
<replace-with class="A1Impl">
<when-type-is class="A"/>
</replace-with>
<replace-with class="A2Impl">
<when-type-is class="A"/>
<when-property-is name="p" value="1"/>
</replace-with>
声明说:如果属性A1Impl
的值为A2Impl
,则使用p
类作为默认类和1
类。
现在,在我的应用中,我想要使用该模块,并希望P
为1
(因为这会控制上面显示的内容,还有很多其他延迟绑定配置){{1} }:
mymodule.gwt.xml
但另外我想覆盖继承模块的延迟绑定配置以使用我自己的<inherits name='moduleA'/>
<set-property name="p" value="1" />
实现。我在我的模块中尝试了类似的东西,但它不起作用:
A
它应该是这样的:如果属性<replace-with class="B1Impl">
<when-type-is class="A"/>
<when-property-is name="p" value="1"/>
</replace-with>
具有值A2Impl
但是使用我自己的实现p
,请不要使用1
(在继承模块中声明)
这可能吗?
提前感谢您的帮助。
答案 0 :(得分:0)
简而言之,是的,您可以重新定义已经设置的任何重新绑定规则。只需inherit
您要更改的模块,然后在重新绑定规则之后进行更改。
<inherits name="package.to.ModuleA" />
<set-property name="p" value="1" />
使用上面的代码,p始终为1,因此设置有关p的具体规则有点愚蠢。除非p能够不是1,否则你甚至不需要when-property-is
规则。
只要在 replace-with
语句后列出,您的inherits
看起来就是正确。因此,我始终鼓励开发人员首先列出所有inherits
规则,然后继续执行任何replace-with
和generate-with
或set-property
规则。
有关详细信息,您需要发布一些更具体的内容。