在我的Silverlight 4應用程序,我救通過DataContractSerializer的XML序列化我的對象 - 這是很容易的:XML序列化和需要公共屬性
public byte[] SerializeModel(ServiceModel model)
{
System.Runtime.Serialization.DataContractSerializer serializer = new System.Runtime.Serialization.DataContractSerializer(typeof(ServiceModel));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
serializer.WriteObject(ms, model);
byte[] bytes = ms.ToArray();
ms.Close();
return bytes;
}
...,並通過輕鬆加載它們:
public ServiceModel DeserializeModel(string stream)
{
System.Runtime.Serialization.DataContractSerializer serializer = new System.Runtime.Serialization.DataContractSerializer(typeof(ServiceModel));
System.Xml.XmlReader reader = System.Xml.XmlReader.Create(new System.IO.StringReader(stream));
object result = serializer.ReadObject(reader);
return (ServiceModel)result;
}
(錯誤處理中省略)
對我來說,問題是,我需要的數據進行保存(或更好:要加載)與getter和setter的公共屬性。這導致對數據完整性的失控。即我有一個對象集合,我想控制要添加或刪除的對象。我需要繼承或重新實現集合,更改Add和Remove方法以及其他我需要控制的方法。但是使它變得私人使我無法使用DataContractSerializer。
任何建議如何保持簡單但保持對類中的對象的控制?
由於提前,
弗蘭克
你可以不在控制器中控制這個嗎? – 2011-05-12 14:48:07