Metode persistensi objek data dengan cara serialisasi dan deserialisasi kumpulan entitas data generik.
Saat kita biasa menggunakan database, sering kali kita menemui masalah yaitu kita tidak ingin objek entitas data tersebut dimasukkan ke dalam database, tetapi kita tidak ingin objek entitas data tersebut dimasukkan ke dalam database. ingin menyimpannya, maka kita dapat membuat serialnya menjadi
string XML dan menyimpannya ke tempat lain. Karena string tersebut dibuat, string tersebut dapat disimpan ke tempat mana pun kita ingin menyimpannya. Misalnya, ViewState asp.net, cookie, cache, dll.
Pertama, kita mendefinisikan kelas entitas data.
Entitas kelas
{
Entitas publik()
{}
id int pribadi;
Id int publik
{
mendapatkan
{
mengembalikan identitas;
}
mengatur
{
id = nilai;
}
}
nama string pribadi;
Nama string publik
{
mendapatkan
{
nama kembali;
}
mengatur
{
nama = nilai;
}
}
harga ganda pribadi;
harga ganda publik
{
mendapatkan
{
harga pengembalian;
}
mengatur
{
harga = nilai;
}
}
}
Jadi masukkan ke dalam objek List<Entity>
List<Entity> list = new List<Entity>();
Objek entitas = Entitas baru();
obj.Id = 1;
obj.Nama = "tes";
obj.Harga = 3,23;
daftar.Tambahkan(obj);
Dengan cara ini, objek List<Entity> berhasil dibuat. Mari kita buat serial menjadi
string statis publik Serialize<BusinessObject>(List<BusinessObject> GenericList)
{
Hasil XmlDocument = XmlDocument baru();
hasil.LoadXml("<Root></Root>");
foreach (obj BusinessObject di GenericList)
{
XmlElement Item = hasil.CreateElement("Item");
PropertyInfo[] properti = obj.GetType().GetProperties();
foreach (properti PropertyInfo di properti)
{
if (properti.GetValue(obj, null) != null)
{
Elemen XmlElement = hasil.CreateElement(property.Name);
elemen.SetAttribute("Jenis", properti.PropertyType.Nama);
elemen.InnerText = properti.GetValue(obj, null).ToString();
Item.AppendChild(elemen);
}
}
hasil.DocumentElement.AppendChild(Item);
}
mengembalikan hasil.InnerXml;
}
Kemudian kita memanggil metode ini
string str = Serialize<Entity>(list);
File XML yang dihasilkan adalah:
<Root>
<Barang>
<Id Type="Int32">1</Id>
<Nama Type="String">tes</Nama>
<Jenis Harga="Ganda">3,23</Harga>
</Barang>
</Akar>
Selanjutnya, kita deserialize file xml yang dihasilkan di atas dan menghasilkan objek List<Entity> sekarang
public static List<BusinessObject> Deserialize<BusinessObject>(string XmlStr)
{
Daftar<BusinessObject> hasil = Daftar baru<BusinessObject>();
XmlDocument XmlDoc = XmlDocument baru();
XmlDoc.LoadXml(XmlStr);
foreach (XmlNode ItemNode di XmlDoc.GetElementsByTagName("Root").Item(0).ChildNodes)
{
Item BusinessObject = Activator.CreateInstance<BusinessObject>();
PropertyInfo[] properti = typeof(BusinessObject).GetProperties();
foreach (XmlNode propertyNode di ItemNode.ChildNodes)
{
string nama = propertyNode.Nama;
tipe string = propertyNode.Attributes["Type"].Value;
nilai string = propertyNode.InnerXml;
foreach (properti PropertyInfo di properti)
{
if (nama == properti.Nama)
{
property.SetValue(item,Convert.ChangeType(nilai,property.PropertyType), null);
}
}
}
hasil.Tambahkan(item);
}
hasil pengembalian;
}
Kemudian kita memanggil metode ini:
List<Entity> list = Deserialize<Entity>(str);
Ini sudah berakhir.
Artikel ini hanya memperkenalkan Anda pada metode sederhana untuk membuat serialisasi objek List<>. Anda harus menggunakannya sesuai dengan situasi Anda sendiri.
http://www.cnblogs.com/kchen/archive/2006/11/04/550382.html