IForeAssembly.BindToClass

Синтаксис

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».

См. также:

IForeAssembly