Здравствуйте, 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 (см. пример).
Лично у меня в проекте мы написали свою собственную (упрощенную и быструю) сериализацию, которая по специальному атрибуту понимает, что этот класс нужно сохранять/читать один раз.