Как сериализовать два объекта (Контейнеры)? Пример
class FirstContainer{
List<First> = new First();
}
class SecondContainer{
List<Second> = new Second();
}
class First{
string str;
public First(string s){
str = s;
}
}
class Second{
First F; // Не должна потеряться ссылка!
public Second(First f){
F = f;
}
}
Как правильно сериализовать два объекта что бы не потерялась ссылка на First?
P.S. Классы наведены для примера
Если вас устраивает бинарная сериализация, то можно использовать класс BinaryFormatter
.
Ваш огрызок код даже не компилируется, но, допустим, ошибки исправлены и всё с ним в порядке. Создайте класс-оболочку для ваших двух объектов:
[Serializable]
class Wrapper
{
public FirstContainer con1 = new FirstContainer();
public SecondContainer con2 = new SecondContainer();
}
Он обязательно должен быть помечен атрибутом Serializable
, так же как и все остальные ваши классы.
Код (де)сериализации элементарен:
var wrapper = new Wrapper();
var formatter = new BinaryFormatter();
using (var stream = new FileStream("test.bin", FileMode.Create))
{
formatter.Serialize(stream, wrapper);
}
using (var stream = new FileStream("test.bin", FileMode.Open))
{
wrapper = (Wrapper)formatter.Deserialize(stream);
}
Недостаток этого подхода в том, что не получится обмениваться таким образом данными с другими платформами, кроме .NET.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется (c# wpf) окно, в котором динамически показываются разные контролы (фреймы)Набор показываемых контролов определяется в главной vm
Я понимаю общие принципы Master/Slave, но как это красиво наложить на WCF очень туманно вижу
Задача: слияние узлов XML и классов, где свойства помеченные атрибутом ToXmlAttribute, являются атрибутами Xml (Node Name=""):
Есть массив из нулей и единиц, мне нужно за один проход по массиву найти сумму единиц до каждого из нулей и результат записать в новую коллекцию,...