BG Development


  Reply to this topicStart new topicStart Poll

> RQ: а)Опционна сериализация; б) коментари в xml
NikB
Публикувано на: 28-09-2017, 13:08
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1013
Регистриран на: 22.09.05



1. Може ли и какъв механизъм да ползвам, за да сериализирам избрани properties от обект?

В конкретния случай имам един голям списък от обекти (от тип, примерно, class Item)
List<Item> mainТoSer;

class Item
{
...
classSubItem
}

елементите classSubItem си имат идентификатори, и когато свериализирам mainТoSer искам да се виждат само идентификаторите на classSubItem,

ОБАЧЕ има и друг списък
List<classSubItem>
който, като го сериализирам, искам да се виждат "целите" classSubItem.

ДЪРВЕНИЯТ начин е да дублирам Id и да игнорирам classSubItem:

CODE
class Item
{
   ...
 [XmlIgnore]
 public  classSubItem;
 public IdSubItem{get; set;}
}


(Офф топик: като си играх с PropertyGrid editor беше голям Хуz да сменям ReadOnly на полета, ако е подобно - по-добре да е дървено icon_smile.gif))


2. Може ли, и как (без да ги пиша елемент по елемент) в XML да се сложи коментар, зависещ от сериализираните данни.
Това вероятно ще е сложно, просто насока?

QUOTE
<!--SLOT Id=5 -->
        <SLOT>
          <Id>5</Id>
        </SLOT>

PMEmail Poster
Top
wqw
Публикувано на: 28-09-2017, 14:20
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 5616
Регистриран на: 10.06.04



QUOTE (NikB @ 28-09-2017, 13:08)
ДЪРВЕНИЯТ начин е да дублирам Id и да игнорирам classSubItem:

Не е дървен ако prop е read-only и "виртуално" така някак
CODE
public string IdSubItem { get { return classSubItem.ID; } }

. . . щото реално данни не се дублират.

По-засукано е ако имаше List<classSubItem> на който селективно трябва само ID-та да сериализираш, но принципа е същия: lazi load на List<string> в който помпаш само ID-тата като реално това prop ще се вика само от сериализацията и щеше да е супер ако можеше да е private (както примерно ServiceStack сериализаторите позволяват).

cheers,
</wqw>


--------------------
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0