Params: IForeNETMethodParams;
Свойство Params возвращает коллекцию параметров пользовательского .NET-метода.
Список параметров формируется на основании сигнатуры процедуры/функции, которые лежат в основе пользовательского .NET-метода. Если сигнатура может измениться, то для обновления списка параметров выполните метод IBaseMethod.Bind.
Для выполнения примера предполагается, что в репозитории добавлен пользовательский .NET-метод с параметрами.
Добавьте ссылки на системные сборки: Fore, ForeNet и Metabase.
Sub UserProc;
Var
Mb: IMetabase;
SharedParams: ISharedParamsEx;
Methods: IForeNETMethods;
Method: IForeNETMethod;
MethodParams: IForeNETMethodParams;
Param: IForeNETMethodParam;
i: Integer;
Begin
Mb := MetabaseClass.Active;
SharedParams := Mb.SpecialObject(MetabaseSpecialObject.SharedParams).Bind As ISharedParamsEx;
Methods := SharedParams.NETMethods;
Method := Methods.Item(0);
If Not IsNull(Method) Then
Method.Bind;
MethodParams := Method.Params;
Debug.WriteLine(MethodParams.Count.ToString);
For i := 0 To MethodParams.Count - 1 Do
Param := MethodParams.Item(i);
Debug.Write("Параметр: " + Param.Name);
Debug.WriteLine(". Тип: " + Param.Type.ToString);
End For;
End If;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Fore;
Imports Prognoz.Platform.Interop.KeFore;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
SharedParams: ISharedParamsEx;
Methods: IForeNETMethods;
Method: IForeNETMethod;
MethodParams: IForeNETMethodParams;
Param: IForeNETMethodParam;
i: Integer;
Begin
Mb := Params.Metabase;
SharedParams := Mb.SpecialObject[MetabaseSpecialObject.msoSharedParams].Bind() As ISharedParamsEx;
Methods := SharedParams.NETMethods;
Method := Methods.Item[0];
If Method <> Null Then
Method.Bind();
MethodParams := Method.Params;
For i := 0 To MethodParams.Count - 1 Do
Param := MethodParams.Item[i];
System.Diagnostics.Debug.Write("Параметр: " + Param.Name);
System.Diagnostics.Debug.WriteLine(". Тип: " + Param.Type.ToString());
End For;
End If;
End Sub;
При выполнении примера будет проинициализирован первый пользовательский .NET-метод. В окно консоли будут выведены наименования и типы всех параметров .NET-метода.
См. также: