Предположим, у меня есть несколько классов, которые простираются от MyAbstractClass, каждый из которых содержит свои собственные свойства, которых нет в MyAbstractClass. Как получить значение свойства из одного из этих классов?Получить значение свойства с помощью отражения
Что-то вроде этого: (псевдокод)
Method GetPropertyValue(myAbstractClass As MyAbstractClass) As %String
{
Set myPropertyValue = myAbstractClass.GetType().GetProperty("MyProperty").GetValue();
Quit myPropertyValue
}
До сих пор у меня есть это:
Method GetPropertyValue(argBusinessObject As BusinessObject)
{
// get class name.
set className = argBusinessObject.%PackageName()_"."_argBusinessObject.%ClassName()
set dictionary = ##class(%Dictionary.ClassDefinition).%OpenId(className)
if (dictionary '= "")
{
for index=1:1:dictionary.Properties.Count()
{
#dim clsPropDef As %Dictionary.PropertyDefinition
// Get the property name from the class
set clsPropDef = dictionary.Properties.GetAt(index)
if (..PropertyName = clsPropDef.Name) {
// we have the property
// Set the propName so that it gets included
// now what?
}
}
}
}
который не компилируется для меня. –
Упс, исправлено. Извините, позвонил, прежде чем я смог проверить это. – psr
Это не доступно в моей версии кеша. Мне пришлось использовать $ ZOBJPROPERTY –