GetDeclarationResult GetDeclarationBlock(OdId tObject, GetDeclarationBlockArg tArg)
tObject. Моникёр модуля или сборки.
tArg. Параметры выполнения операции.
Операция GetDeclarationBlock используется для навигации по коду.
Операция позволяет получить информацию о глобальных членах и типах, реализованных в коде, а также о локальных членах, реализованных внутри пространств имён, классов, интерфейсов. Для выполнения операции укажите в параметре tObject моникёр объекта репозитория, являющегося модулем или сборкой. Моникёр объекта может быть получен при выполнении операции GetObjects. В параметре tArg.path укажите наименование типа, для которого необходимо получить информацию о локальных членах. Если tArg.path не задан, то будет получена информация о глобальных членах и типах.
Ниже приведён пример использования операции GetDeclarationBlock для получения информации о членах указанного класса. В запросе передаётся моникёр модуля в репозитории и наименование класса. В ответе приходит информация о членах класса. В примере C# используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору».
{
"GetDeclarationBlock" :
{
"tObject" :
{
"id" : "S1!M!172002"
},
"tArg" :
{
"path" : "TestObject"
}
}
}
{
"GetDeclarationBlockResult" :
{
"result" :
{
"it" :
[
{
"type" : "Var",
"moduleName" : "M_ADDITIONAL",
"name" : "_arr",
"typeName" : "Array",
"access" : "Private",
"beginPoint" :
{
"col" : "5",
"row" : "2"
},
"endPoint" :
{
"col" : "19",
"row" : "2"
},
"isShared" : "0"
},
{
"type" : "Sub",
"moduleName" : "M_ADDITIONAL",
"name" : "Create",
"access" : "Public",
"beginPoint" :
{
"col" : "12",
"row" : "4"
},
"endPoint" :
{
"col" : "27",
"row" : "7"
},
"isShared" : "0"
},
{
"type" : "Sub",
"moduleName" : "M_ADDITIONAL",
"name" : "CreateWithParams",
"access" : "Public",
"beginPoint" :
{
"col" : "12",
"row" : "9"
},
"endPoint" :
{
"col" : "37",
"row" : "15"
},
"blocks" :
{
"it" :
[
{
"type" : "Var",
"name" : "DefaultValue",
"typeName" : "Double",
"access" : "Public",
"beginPoint" :
{
"col" : "12",
"row" : "9"
},
"endPoint" :
{
"col" : "37",
"row" : "15"
}
},
{
"type" : "Var",
"name" : "Size",
"typeName" : "Integer",
"access" : "Public",
"beginPoint" :
{
"col" : "12",
"row" : "9"
},
"endPoint" :
{
"col" : "37",
"row" : "15"
}
}
]
},
"isShared" : "0"
},
{
"type" : "Sub",
"moduleName" : "M_ADDITIONAL",
"name" : "Run",
"access" : "Public",
"beginPoint" :
{
"col" : "12",
"row" : "17"
},
"endPoint" :
{
"col" : "16",
"row" : "20"
},
"isShared" : "0"
}
]
}
}
}
public static GetDeclarationResult GetDeclarationBlock(MbId mb, string objId)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tGet = new GetDeclarationBlock()
{
tArg = new GetDeclarationBlockArg()
{
path = "TestObject"
},
//Формирование моникёра объекта
tObject = new OdId() { id = mb.id + "!" + FindObjectById(mb, objId).k }
};
//Получение информации о дочерних членах класса
var result = somClient.GetDeclarationBlock(tGet);
return result;
}
См. также: