を使用してオブジェクトを取得しようとしていますTRttiContext.FindType(QualifiedTypeName)
。これが私が持っているものです:
program MissingRTTI;
{$APPTYPE CONSOLE}
uses System.SysUtils, RTTI, Classes;
type
TMyClass = class(TObject) end;
var
rCtx: TRttiContext;
rType: TRttiInstanceType;
begin
rCtx := TRttiContext.Create();
rType := rCtx.GetType(TypeInfo(TMyClass)) as TRttiInstanceType;
if (rType <> nil) then begin
WriteLn('Type found using TypeInfo');
end;
rType := rCtx.FindType(TMyClass.QualifiedClassName) as TRttiInstanceType;
if (rType <> nil) then begin
WriteLn('Type found using qualified class name.');
end;
ReadLn;
rCtx.Free();
end.
残念ながら、rCtx.GetType
目的のタイプしか見つからないようです。(GetTypesを使用してすべての型を一覧表示しようとしました。目的の型が結果の配列に表示されません。)コンパイラにこの型のRTTIを強制的に発行させる方法を知っている人はいますか?