Мое личное отношение в Вашем примере - то, что маршрут промежутка является более соответствующим, поскольку это соответствует стандартам спецификации XHTML. Однако я вижу argment для пользовательских атрибутов, но я думаю, что они добавляют уровень беспорядка, который не необходим.
Если вам нужно явно контролировать порядок сериализации и десериализации ваших объектов, я предлагаю вам реализовать Интерфейс ISerializable
для A:
public class ClassA : ISerializable
{
private ClassB _dependency;
public ClassA(SerializationInfo information, StreamingContext context)
{
_dependency
= (ClassB)information.GetValue("_dependency", typeof(ClassB));
// TODO: Get other values from the serialization info.
// TODO: Set up stuff from dependent object.
}
public SerializationInfo GetObjectData()
{
information.AddValue("_dependency", _dependency, typeof(ClassB));
// TODO: Add other fields to the serialization info.
}
}
Я бы посоветовал просто использовать метод, помеченный [OnDeserialized]
, для обработки любой инициализации после сериализации, которая вам требуется, и не беспокоиться о порядке, в котором они десериализуются .