ссылки на parent объект при десериализации
От: sergunok  
Дата: 28.06.10 10:57
Оценка:
Десериализую объект класса, содержащего другие подобъекты.

В конечном счете мне нужно, чтобы подобъекты обладали ссылками на основной десериализуемый объект.
Понятно, что эти ссылки можно "проставить" после десериализации..

Но, интересно:
1) Можно ли и как это сделать в процессе десериализации? А именно заставить десериализатор
вызывать не конструктор умолчания, а конструктор с параметром и передать ему этот параметр.

2) Можно ли и как, используя информацию времени исполнения, из объекта класса A получить объект класса B, поле которого (имя поля известно) ссылается на объект A? (пусть единственный экземпляр B содержит этот экземпляр A)

т.е.:

public class B
{
public A a;
}

public class A
{
public void f()
{
var myB = ??? // Как?
Console.Write("I'm in {0} instance of class B ", myB)
}
}

int main()
{
B b = new B();
b.a = new B();
a.f();

}
Re: ссылки на parent объект при десериализации
От: TK Лес кывт.рф
Дата: 28.06.10 12:01
Оценка:
Здравствуйте, sergunok, Вы писали:

S>Десериализую объект класса, содержащего другие подобъекты.


S>В конечном счете мне нужно, чтобы подобъекты обладали ссылками на основной десериализуемый объект.

S>Понятно, что эти ссылки можно "проставить" после десериализации..

используйте system.runtime.serialization — там форматтеры умеют сериализовать подобные ссылки.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.