Как привести объект в тип TRttiType - PullRequest
0 голосов
/ 06 июня 2019

Я работаю с ORM (Aurelius), и мне нужно привести объект как TRttiType.

TRttiType был получен из TRtticontext.FindType.

ISptModel = interface(IInterface)
  ['{688431B1-2895-4FE2-AD18-8A7892289956}']
end;

TCidade = class(TInterfacedObject, ISptModel)
end;
var
  FObjectInstance: ISptModel;

LType := LContext.FindType('Spt.Cidade.Model.TCidade');

Manager.SaveOrUpdate(LType(FObjectInstance)); // I need something like this, but doesnt work
Manager.SaveOrUpdate(TCidade(FObjectInstance)); // This works

Он должен быть наложен на TCidade, чтобы Аврелий мог правильно сохранить объект.

1 Ответ

1 голос
/ 06 июня 2019

Вы не можете использовать LType так, как хотите.

Вам, вероятно, просто нужно привести интерфейс в TObject примерно так:

Manager.SaveOrUpdate(FObjectInstance as TObject);
...