Десериализую объект класса, содержащего другие подобъекты.
В конечном счете мне нужно, чтобы подобъекты обладали ссылками на основной десериализуемый объект.
Понятно, что эти ссылки можно "проставить" после десериализации..
Но, интересно:
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)
}
}
Здравствуйте, sergunok, Вы писали:
S>Десериализую объект класса, содержащего другие подобъекты.
S>В конечном счете мне нужно, чтобы подобъекты обладали ссылками на основной десериализуемый объект. S>Понятно, что эти ссылки можно "проставить" после десериализации..
используйте system.runtime.serialization — там форматтеры умеют сериализовать подобные ссылки.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.