У меня возникли проблемы с сериализацией неизменяемого экземпляра с помощью DataContractSerializer, поскольку в свойствах сериализуемого класса отсутствуют сеттеры. Проблема в том, что я хочу только сериализовать экземпляр (чтобы его можно было записать в журнал), и мне никогда не нужно его десериализовать. Есть ли способ обойти такое поведение?
Класс, который я пытаюсь сериализовать:
[DataContract]
public class Person
{
private readonly string _name;
[DataMember]
public string Name
{
get { return _name; }
}
public Person(string name)
{
_name = name;
}
}
Код, используемый для сериализации класса:
public string Serialize()
{
var serializer = new DataContractSerializer(typeof(Person));
StringBuilder stringBuilder = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(stringBuilder)) {
serializer.WriteObject(writer, this);
}
return stringBuilder.ToString();
}