BindToSub(SubName: String): IForeSub;
BindToSub(SubName: String): Prognoz.Platform.Interop.Fore.IForeSub;
SubName. Наименование процедуры/функции, реализованной в глобальном пространстве имён сборки.
Метод BindToSub возвращает информацию о процедуре/функции с указанным именем.
Метод возвращает Null, если процедура/функция с указанным именем не найдена
Для выполнения примера предполагается наличие в репозитории сборки с идентификатором «ASSM_TEST». В глобальном пространстве имён сборки реализована функция «Run».
Добавьте ссылку на системную сборку Fore, Metabase.
Sub UserProc;
Var
ForeService: IForeServices;
Runtime: IForeRuntime;
Assm: IForeAssembly;
FSub: IForeSub;
Begin
ForeService := MetabaseClass.Active As IForeServices;
Runtime := ForeService.GetRuntime;
//Загрузка сборки
Assm := Runtime.BindToAssembly("ASSM_TEST");
//Получение функции
FSub := Assm.BindToSub("Run");
FSub.Invoke;
If FSub.IsResult Then
Debug.WriteLine(FSub.ResultValue);
End If;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Fore;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
ForeService: IForeServices;
Runtime: IForeRuntime;
Assm: IForeAssembly;
FSub: IForeSub;
Begin
ForeService := Params.Metabase As IForeServices;
Runtime := ForeService.GetRuntime();
//Загрузка сборки
Assm := Runtime.BindToAssembly("ASSM_TEST");
//Получение функции
FSub := Assm.BindToSub("Run");
FSub.Invoke();
If FSub.IsResult Then
System.Diagnostics.Debug.WriteLine(FSub.ResultValue);
End If;
End Sub;
При выполнении примера в среду выполнения будет загружена сборка репозитория с указанным идентификатором. В сборке будет получена и запущена на выполнение функция «Run». Результат работы функции будет выведен в консоль среды разработки.
См. также: