Die Methode zum Beibehalten von Datenobjekten durch Serialisieren und Deserialisieren einer Sammlung generischer Datenentitäten.
Wenn wir normalerweise die Datenbank verwenden, stoßen wir häufig auf ein Problem, das heißt, wir möchten nicht, dass die Datenentitätsobjekte in die Datenbank eingefügt werden Wenn wir sie beibehalten möchten, können wir sie in
einen XML-String serialisieren und an anderen Orten speichern. Da der String generiert wird, kann er an jedem beliebigen Ort gespeichert werden. Zum Beispiel ViewState, Cookie, Cache usw. von asp.net.
Zuerst definieren wir eine Datenentitätsklasse.
Klassenentität
{
publicEntity()
{}
private int-id;
öffentliche int-ID
{
erhalten
{
Rückgabe-ID;
}
Satz
{
id = wert;
}
}
privater String-Name;
öffentlicher String-Name
{
erhalten
{
Rückgabename;
}
Satz
{
Name = Wert;
}
}
privater Doppelpreis;
öffentlicher doppelter Preis
{
erhalten
{
Rückgabepreis;
}
Satz
{
Preis = Wert;
}
}
}
Fügen Sie es also in das List
List
Entity obj = new Entity();
obj.Id = 1;
obj.Name = "test";
obj.Preis = 3,23;
list.Add(obj);
Auf diese Weise wird ein List
der öffentlichen statischen Zeichenfolge Serialize
{
XmlDocument result = new XmlDocument();
result.LoadXml("
foreach (BusinessObject obj in GenericList)
{
XmlElement Item = result.CreateElement("Item");
PropertyInfo[] Properties = obj.GetType().GetProperties();
foreach (PropertyInfo-Eigenschaft in Eigenschaften)
{
if (property.GetValue(obj, null) != null)
{
XmlElement element = result.CreateElement(property.Name);
element.SetAttribute("Type", property.PropertyType.Name);
element.InnerText = property.GetValue(obj, null).ToString();
Item.AppendChild(element);
}
}
result.DocumentElement.AppendChild(Item);
}
return result.InnerXml;
}
Dann nennen wir diese Methode
string str = Serialize
Die generierte XML-Datei lautet:
Als nächstes deserialisieren wir die oben generierte XML-Datei und generieren gerade das List
public static List
{
List
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.LoadXml(XmlStr);
foreach (XmlNode ItemNode in XmlDoc.GetElementsByTagName("Root").Item(0).ChildNodes)
{
BusinessObject item = Activator.CreateInstance
PropertyInfo[] Properties = typeof(BusinessObject).GetProperties();
foreach (XmlNode propertyNode in ItemNode.ChildNodes)
{
string name = propertyNode.Name;
string type = propertyNode.Attributes["Type"].Value;
string value = propertyNode.InnerXml;
foreach (PropertyInfo-Eigenschaft in Eigenschaften)
{
if (name == property.Name)
{
property.SetValue(item,Convert.ChangeType(value,property.PropertyType), null);
}
}
}
result.Add(item);
}
Ergebnis zurückgeben;
}
Dann rufen wir diese Methode auf:
List
Es ist vorbei.
Dieser Artikel stellt Ihnen nur eine einfache Methode zum Serialisieren von List<>-Objekten vor. Sie sollten sie entsprechend Ihrer eigenen Situation verwenden.
http://www.cnblogs.com/kchen/archive/2006/11/04/550382.html