我试图将一个对象序列化为具有许多属性的 XML,其中一些属性是只读的。
public Guid Id { get; private set; }
我已经标记了类[ Serializer ] ,并且实现了 ISerializer 接口。
下面是我用来序列化对象的代码。
public void SaveMyObject(MyObject obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
TextWriter tw = new StreamWriter(_location);
serializer.Serialize(tw, obj);
tw.Close();
}
不幸的是,它在第一行与此消息失败。
未处理 InvalidOperationException: 无法生成临时类(result = 1)。 Error CS0200: 属性或索引器“ MyObject.Id”无法分配给——它是只读的
如果我将 Id 属性设置为 public,它就可以正常工作。谁能告诉我,我是否在做什么,或者至少是否有可能做什么?