我在加载和编译现有类的新版本时遇到问题。在加载它们时,没有任何对它们的引用。“Test.Extended”类扩展了“Test.Base”类。“Extended”类调用“Base”类的 ClassMethod。问题是,即使在两个类上加载并执行强制编译之后,被调用的“Base”中的 ClassMethod也不是新编译类的方法,而是它的旧版本(通过写入控制台确认)。
为了编译两者,我在终端使用以下命令(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
我们需要系统自动加载和编译这两个文件,但我们不能这样做,因为系统一直在使用旧版本。有人知道如何强制 Intersystems Caché 使用最新版本的编译类吗?
谢谢,路易斯