BindToClass(ClassName: String): IForeClass;
BindToClass(ClassName: String): Prognoz.Platform.Interop.Fore.IForeClass;
ClassName. Наименование класса/интерфейса/перечисления.
Метод BindToClass возвращает информацию о классе/интерфейсе/перечислении с указанным именем.
Метод возвращает Null, если класс/интерфейс/перечисление с указанным именем не найдены в сборке.
Для выполнения примера предполагается наличие в репозитории сборки с идентификатором «ASSM_TEST». В сборке реализован класс «CCalculate».
Добавьте ссылку на системную сборку Fore, Metabase.
Sub UserProc;
Var
ForeService: IForeServices;
Runtime: IForeRuntime;
Assm: IForeAssembly;
FClass: IForeClass;
FSub: IForeSub;
i, j: Integer;
Begin
ForeService := MetabaseClass.Active As IForeServices;
Runtime := ForeService.GetRuntime;
//Загрузка сборки
Assm := Runtime.BindToAssembly("ASSM_TEST");
//Получение информации процедурах/функциях класса
FClass := Assm.BindToClass("CCalculate");
j := FClass.SubsCount - 1;
For i := 0 To j Do
FSub := FClass.SubItem(i);
If FSub.IsConstructor Then
Debug.Write("Конструктор: ");
Elseif FSub.IsStatic Then
If FSub.IsResult Then
Debug.Write("Статическая функция: ");
Else
Debug.Write("Статическая процедура: ");
End If;
Else
If FSub.IsResult Then
Debug.Write("Функция: ");
Else
Debug.Write("Процедура: ");
End If;
End If;
Debug.WriteLine(FSub.Name);
End For;
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;
FClass: IForeClass;
FSub: IForeSub;
i, j: Integer;
Begin
ForeService := Params.Metabase As IForeServices;
Runtime := ForeService.GetRuntime();
//Загрузка сборки
Assm := Runtime.BindToAssembly("ASSM_TEST");
//Получение информации процедурах/функциях класса
FClass := Assm.BindToClass("CCalculate");
j := FClass.SubsCount() - 1;
For i := 0 To j Do
FSub := FClass.SubItem(i);
If FSub.IsConstructor Then
System.Diagnostics.Debug.Write("Конструктор: ");
Elseif FSub.IsStatic Then
If FSub.IsResult Then
System.Diagnostics.Debug.Write("Статическая функция: ");
Else
System.Diagnostics.Debug.Write("Статическая процедура: ");
End If;
Else
If FSub.IsResult Then
System.Diagnostics.Debug.Write("Функция: ");
Else
System.Diagnostics.Debug.Write("Процедура: ");
End If;
End If;
System.Diagnostics.Debug.WriteLine(FSub.Name);
End For;
End Sub;
При выполнении примера в среду выполнения будет загружена сборка репозитория с указанным идентификатором. В консоль среды разработки будет выведен список процедур/функций, реализованных в классе «CCalculate».
См. также: