【发布时间】:2011-03-09 11:46:21
【问题描述】:
我在使用 DataContractSerializer 序列化不可变实例时遇到问题,因为我正在序列化的类的属性缺少 setter。问题是我只想序列化实例(只是为了将其写入日志),而我从不需要反序列化它。有没有办法绕过这种行为?
我要序列化的类:
[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();
}
【问题讨论】:
标签: c# .net serialization datacontractserializer