Delphi Rtti: как получить объекты из TObjectList <T>

Я работаю с пользовательским классом в XML-конвертер, и одним из требований является возможность потоковой передачиTObjectList поля.

Я пытаюсь вызватьToArray() способ получить список TObjectlistобъекты, но я получаюНеверный тип потому что типы явно нет совпадают.

возьмем этот класс, например:

type
  TSite = class
    Name : String;
    Address : String; 
  end;

  TSites = class
    Sites : TObjecList;
  end;  

Мне просто нужно получить объекты сайта из списка сайтов TObjectList. Пожалуйста, имейте в виду, что я использую RTTI, поэтому я незнать ObjectType в TObjectList,так что Typecasting выигралт работа, Это то, что у меня есть, но, похоже, тупикTobjectList Вот):

function TXmlPersister.ObjectListToXml(Obj : TObject; Indent: String): String;

var
  TypInfo: TRttiType;
  meth: TRttiMethod;
  Arr  : TArray;

begin
 Result := '';
 TypInfo := ctx.GetType(Obj.ClassInfo);
 Meth := TypInfo.GetMethod('ToArray');
 if Assigned(Meth) then
  begin
   Arr := Invoke(Obj, []).AsType; // invalid class typecast error

   if Length(Arr) > 0 then
    begin
     // get objects from array and stream them
     ...
    end;
  end;

Любой способ получить объекты из TObjectList через RTTI мне подходит. По какой-то странной причине я неувидеть методы GetItem / SetItem в TypInfo

РЕДАКТИРОВАТЬ

Благодаря Дэвиду у меня есть решение:

function TXmlPersister.ObjectListToXml(Obj : TObject; Indent: String): String;

var
  TypInfo: TRttiType;
  meth: TRttiMethod;
  Value: TValue;
  Count : Integer;

begin
 Result := '';
 TypInfo := ctx.GetType(Obj.ClassInfo);
 Meth := TypInfo.GetMethod('ToArray');
 if Assigned(Meth) then
  begin
   Value := Meth.Invoke(Obj, []);
   Assert(Value.IsArray);
   Count :=  Value.GetArrayLength;
   while Count > 0 do
    begin
     Dec(Count);
     Result := Result + ObjectToXml(Value.GetArrayElement(Count).AsObject, Indent);
    end;
  end;
end;

Я открыт для предложений, может быть, есть ещеумная' способы достижения этой цели ...

Ответы на вопрос(1)

Ваш ответ на вопрос