是否可以编写ObjectScript方法,该方法将在命名空间中创建新类并进行编译?我的意思是以编程方式创建新类并存储它。如果是这样,我可以稍后使用ObjectScript编辑此类(然后重新编译)吗?
原因:我在字符串变量中定义了类结构,因此需要根据该字符串向名称空间添加新类。
没有什么是不可能的。Caché中的所有内容均可通过编程方式创建。而且,类不是执行。至少有两种方法可以做到这一点:
所有定义都在其他类中定义的所有类。您可以在软件包%Dictionary中找到该文件。
类本身在%Dictionary中定义。ClassDefinition。其中具有一些属性,用于定义类的任何部分。因此,这是一个简单的代码,它创建了一个具有一个属性的类。
set clsDef=##class(%Dictionary.ClassDefinition).%New()
set clsDef.Name="package.classname"
set clsDef.Super="%Persistent"
set propDef=##class(%Dictionary.PropertyDefinition).%New()
set propDef.Name="SomeProperty"
set propDef.Type="%String"
do clsDef.Properties.Insert(propDef)
do clsDef.%Save()
在最新版本中,还有另一种创建/更改类的方法。如果您有课上课文,可以在Studio中看到。然后,可以使用%Compiler.UDL.TextServices类将其加载到Caché中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句