JAXB и .NET. Ссылки в XML
От: MichaelD  
Дата: 06.08.09 08:24
Оценка:
Тема время от времени всплывает....

То что они похожи — есть такое...
НО, как сделать на .NET следующее?


Есть класс A, который своим атрибутом ссылается на класс B.
Есть два экземпляра a1 и a2, которые ссылаются на один и тот же экземпляр класса B — b1.

Если просто серилизовать в XML список, состоящий из a1 и а2, то получим внутри тегов два экземпляра b1 — один внутри a1, другой — внутри a2, а при после десериализации вообще получим два объекта....

Например, на JAXB можно было написать аттрибут @XmlIDREF, тогда бы использовалась ссылка....

@XmlIDREF
@XmlAttribute
private B b;

Есть ли что уже готовое, или нужно будет писать кастомную сериализацию, которая будет поддерживать @XmlIDREF в .Net'е?
Re: JAXB и .NET. Ссылки в XML
От: Kore Sar  
Дата: 06.08.09 10:21
Оценка:
Здравствуйте, MichaelD, Вы писали:

MD>Тема время от времени всплывает....


MD>То что они похожи — есть такое...

MD>НО, как сделать на .NET следующее?


MD>Есть класс A, который своим атрибутом ссылается на класс B.

MD>Есть два экземпляра a1 и a2, которые ссылаются на один и тот же экземпляр класса B — b1.

MD>Если просто серилизовать в XML список, состоящий из a1 и а2, то получим внутри тегов два экземпляра b1 — один внутри a1, другой — внутри a2, а при после десериализации вообще получим два объекта....


Сделать как советует МСДН: http://msdn.microsoft.com/ru-ru/library/system.runtime.serialization.serializationinfo.aspx (см. пример).


Лично у меня в проекте мы написали свою собственную (упрощенную и быструю) сериализацию, которая по специальному атрибуту понимает, что этот класс нужно сохранять/читать один раз.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.