小编Pas*_*lla的帖子

如何在TVirtualInterface TVirtualInterfaceInvokeEvent中获取(Method:TRttiMethod)的所有权属性?

我如何在TVirtualInterface类的OnInvoke方法中获得Method:TRttiMethod的所有权属性?

我有这个界面:

IPerson = interface(IInvokable)
   ['{45CE428C-F880-4D61-A2C1-0F3CB47130B5}']
   procedure SetName(const Value: string);
   function GetName(): string;

   [TEntityField('Field Name Here')]
   property Name: string read GetName write SetName;
end;
Run Code Online (Sandbox Code Playgroud)

而这堂课:

type
   TVirtualEntity<T: IInvokable> = class(TVirtualInterface)
   public
      constructor Create(); reintroduce; overload;
   end;

constructor TVirtualEntity<T>.Create;
begin
   inherited Create(TypeInfo(T));
   Self.OnInvoke :=
      procedure(Method: TRttiMethod; const Args: TArray<TValue>; out Result: TValue)
      var
         attributes: TArray<TCustomAttribute>;
         attributesManager: TAttributesManager;
         entityFieldAttribute: TEntityField;
      begin
         attributesManager := TAttributesManager.Create(Method.GetAttributes);
         try                
            if attributesManager.HasAttribute<TEntityField>() then
            begin
               Result := attributesManager.GetAttribute<TEntityField>.FieldName;
            end;

         finally
            attributesManager.Free;
         end;
      end;
end;
Run Code Online (Sandbox Code Playgroud)

我想获得方法的TRttiProperty:TRttiMethod,但是怎么样?如果我将界面更改为:

IPerson = interface(IInvokable) …
Run Code Online (Sandbox Code Playgroud)

delphi rtti delphi-10.1-berlin

8
推荐指数
1
解决办法
334
查看次数

在Visual Code中CTRL + CLICK的快捷方式是什么?

CtrlVisual Code中+ Click(跟踪链接)的快捷键是什么?如果没有,是否有添加方法?

在此处输入图片说明

在Eclipse中,如果按则F3可以打开文件,例如Ctrl + Click

visual-studio-code

2
推荐指数
1
解决办法
463
查看次数