关键字:XmlSerializer, Performace Issue
近日在解决一个性能问题时,发现如下这段代码的执行要花费较长的时间
SuperElement = XElement.Parse(xmlcontent from resource file);
// 获取指定的内容
IEnumerable<XElement> elements= SuperElement.Descendants().Where(
elem => elem.Name =="Element Name" &&
elem.Attribute("Target") != null);
//ObjectA就是要进行反序列化的类名
m_objectList = newList<ObjectA>();
// 遍历,然后逐一进行反序列化
int logCounter = 1;
foreach (XElement element inelements)
{
System.Diagnostics.Trace.TraceInformation("deserialize2.{0} begin", logCounter);
ObjectAobj = ObjectASerializer<ObjectA>.LoadFromXElement(element);
System.Diagnostics.Trace.TraceInformation("deserialize 2.{0} end", logCounter++);
m_objectList.Add(obj);
}
通过使用DebugViewer查看,发现上面加log之间的的代码占用了较长的时间,代码实现如下
public static TLoadFromXElement(XElement element)
{
int logCounter = 0;
T serializableObject = null;
Type ObjectType = typeof(T);
XmlRootAttribute rootAttr = newXmlRootAttribute();
rootAttr.ElementNa