我在加载和编译现有类的新版本时遇到了问题。当他们被加载时,他们没有任何参考。 “Test.Extended”类扩展了“Test.Base”类。 “Extended”类调用类“Base”上的ClassMethod。问题在于,即使在加载并对两个类执行强制编译后,被调用的“Base”中的ClassMethod也是而不是新编译类中的方法,但是它的较旧版本(通过写入控制台)。如何让IntersystemsCaché使用新编译的类而不是旧版?
要编译两者,我使用的来自终端的以下命令(F:指力,C:编译装置加载时):
NAMESPACE>w $system.OBJ.Load("C:\Test.Base.cls.xml","fc")
Load started on 01/27/2009 10:10:34
Loading file C:\Test.Base.cls.xml as xml
Imported class: Test.Base
Compiling class Test.Base ..................
Compiling routine Test.Base.1
Load finished successfully.
1
NAMESPACE>w $system.OBJ.Load("C:\Test.Extended.cls.xml","fc")
Load started on 01/27/2009 10:10:34
Loading file C:\Test.Extended.cls.xml as xml
Imported class: Test.Extended
Compiling class Test.Extended ..................
Compiling routine Test.Extended.1
Compiling routine Test.Extended.2
Load finished successfully.
1
我们需要这两个文件被加载并自动编译由系统,但我们不能这样做,因为系统继续使用旧版本。有人有关于如何强制IntersystemsCaché使用最新版编译类的想法吗?
感谢, 路易斯
就像那样对我有用。我加载每个类而不编译它们,并且使用标记“fabr”(强制,包含应用程序类,包括子类,递归)来编译它们。 – 2009-03-19 19:29:27