是否可以使用新的 Delphi 的 RTTI 库从字符串中检索 TypeInfo?

Is it possible to retrieve TypeInfo from a string using the new Delphi's RTTI library?

我想知道这是否可能。我想获取 TypeInfo,将类型的名称作为字符串传递。

像这样:

type
  TSomeValues = record
    ValueOne: Integer;
    ValueTwo: string;
  end;


function ReturnTypeInfo(aTypeName: string): TypeInfo;
begin
    // that's is the issue
end;

procedure Button1Click(Sender: TObject);
var
  _TypeInfo: TypeInfo;
begin
  _TypeInfo := ReturnTypeInfo('TSomeValues');
end;

使用TRttiContext.FindType() method and TRttiType.Handle属性,例如:

uses
  ..., System.TypInfo, System.Rtti;

function ReturnTypeInfo(aTypeName: string): PTypeInfo;
var
  Ctx: TRttiContext;
  Typ: TRttiType;
begin
  Typ := Ctx.FindType(aTypeName);
  if Typ <> nil then
    Result := Typ.Handle
  else
    Result := nil;
end;

...

type
  TSomeValues = record
    ValueOne: Integer;
    ValueTwo: string;
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  _TypeInfo: PTypeInfo;
begin
  _TypeInfo := ReturnTypeInfo('Unit1.TSomeValues');
  ...
end;