如何将对象转换为TRttiType

时间:2019-06-06 17:05:12

标签: delphi casting rtti

我正在使用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,以便Aurelius可以正确保留对象。

1 个答案:

答案 0 :(得分:1)

您不能随意使用LType

您可能只需要像这样将接口投射为TObject

Manager.SaveOrUpdate(FObjectInstance as TObject);