你可以編寫一個可序列化爲字符串的列表類。
未測試例如:
public class AddressList : IList<IPAdress>
{
public string Serialized { get; private set; }
private List<IPAddress> _innerList = new List<IPAddress>();
//To be informed when the list is modified.
public event EventHandler OnModified;
public AddressList(string serializedString)
{
//Init the collection from the serialized string
}
public void Add(IPAdress item)
{
_innerList.Add(item)
//Update the serialized string
UpdateString();
}
public void Remove(IPAdress item)
{
_innerList.Remove(item);
//Update the serialized string
UpdateString();
}
private void UpdateString()
{
//Do your update job.
//Call the event.
if (OnModified != null)
OnModified(this, EventArgs.Empty);
}
//Rest of IList implementation....
}
然後在你的實體:
public partial class MyEntity
{
private AddressList _addresses;
public IList<IPAdress> Adresses
{
get
{
if (_addresses == null)
{
_addresses = new AddressList(HostList);
//When the list is modified, you want to update your property.
_addresses.OnModified += delegate(object sender, EventArgs e)
{
HostList = ((AddressList) sender).Serialized;
};
}
return _adresses;
}
}
}
這樣,當你添加/從列表中刪除的項目,該字符串爲 「自動」 更新。
發表一些代碼。 –
你的問題很不明確。 –
我正在尋找的一種方式是讓我從我的數據庫中獲得一個列表 _automatically_,而無需調用額外的函數進行反序列化。 –
appsecguy