我正在尝试将一个具有多个属性的对象序列化为XML,其中一些属性是只读的。
public Guid Id { get; private set; }
我已经标记了 [Serializable] 类,并实现了 ISerializable 接口。
以下是我用来序列化对象的代码。
public void SaveMyObject(MyObject obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
TextWriter tw = new StreamWriter(_location);
serializer.Serialize(tw, obj);
tw.Close();
}
很不幸它在第一行就出现了以下错误信息。
未处理的InvalidOperationException: 无法生成临时类(结果=1)。 错误CS0200:属性或索引器'MyObject.Id'无法被分配 -- 它是只读的
如果我将Id属性设置为public,它就可以正常工作。有人能告诉我我是否做错了什么,或者它是否可能吗?