如何将对象转换为 TRttiType
How to cast a object as TRttiType
我正在使用 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 才能正确地保留对象。
您不能随意使用 LType
。
您可能只需要像这样将界面转换为 TObject
:
Manager.SaveOrUpdate(FObjectInstance as TObject);
我正在使用 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 才能正确地保留对象。
您不能随意使用 LType
。
您可能只需要像这样将界面转换为 TObject
:
Manager.SaveOrUpdate(FObjectInstance as TObject);