Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Cоздать объект по типу, записанному в строке  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1203
Валяется у меня где-то на коленке сериализатор/десериализатор с поддержкой кастомных именований, регистрацией собственных преобразователей типов и коллбеков при (де)сериализации и настроечными опциями как какой тип описывать, с поддержкой наследуемых классов и экземпляров дочерних типов в базовых и рекурсивными ссылками
  TT = (aa,zz,ss);
  TSet = set of TT;

  TA = class
  private
    FA: Int32;
    FB: Int64;
    FC: string;
    FD: TArray<Int32>;
  public
    constructor Create;
  end;

  [SerializePrefix('Test')]
  TTest = class
  public
    [SerializeName('Grow')]
    FGrow: Integer;
    FStr: TSet;
    FClass: TA;
    constructor Create;
  end;

<Config xmlns:o1="System.TObject" xmlns:Test="MainForm.TTest">
  <Test:Grow>50</Test:Grow> 
  <Test:FStr TT.zz="True" /> 
  <Test:FClass xmlns:a1="MainForm.TA">
    <a1:FA>100</a1:FA> 
    <a1:FB>200</a1:FB> 
    <a1:FC>asdfiuas89fh</a1:FC> 
    <a1:FD>
      <I0>10</I0> 
      <I1>20</I1> 
      <I2>30</I2> 
      <I3>40</I3> 
    </a1:FD>
  </Test:FClass>
</Config>
4 окт 18, 19:34    [21695727]     Ответить | Цитировать Сообщить модератору
 Re: Cоздать объект по типу, записанному в строке  [new]
чччччччччч
Guest
X-Cite,

почему "true" ?

  <Test:FStr TT.zz="True" /> 


а не

  <Test:FStr TT="zz" /> 
4 окт 18, 20:47    [21695789]     Ответить | Цитировать Сообщить модератору
 Re: Cоздать объект по типу, записанному в строке  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10643
чччччччччч,

Потому, что у него множество
4 окт 18, 22:07    [21695830]     Ответить | Цитировать Сообщить модератору
 Re: Cоздать объект по типу, записанному в строке  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1203
чччччччччч
X-Cite,

почему "true" ?

  <Test:FStr TT.zz="True" /> 


а не

  <Test:FStr TT="zz" /> 

Множество. Через атрибут задаются значения который входят в него.
Есть опция для множества, писать все элементы через значения True/False (False - не входит) или оставлять только True
4 окт 18, 22:07    [21695831]     Ответить | Цитировать Сообщить модератору
 Re: Cоздать объект по типу, записанному в строке  [new]
aXS_new
Guest
X-Cite, еще раз спасибо за помощь, во всем разобрался. Только что дописал класс благодаря вашим подсказкам.
6 окт 18, 17:51    [21697074]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить