kodXML serileştirme işlemi nasıl daha hızlı yapılır?
public static object XmlDeserialize(string xml, Type objType)
{
StringReader stream = null;
XmlTextReader reader = null;
try
{
XmlSerializer serializer = new XmlSerializer(objType);
stream = new StringReader(xml); // Read xml data
reader = new XmlTextReader(stream); // Create reader
return serializer.Deserialize(reader);
}
finally
{
if(stream != null) stream.Close();
if(reader != null) reader.Close();
}
}
nesnenin kendisi aşağıdaki parça xsd.exe ile oluşturulur ve bu şekilde bir tür görünüyor edilmiş adres:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public partial class MyObject {
private DemographicsCriteriaStateStartAge[] startAgesField;
private DemographicsCriteriaStateEndAge[] endAgesField;
private DemographicsCriteriaStateFilter[] selectedFiltersField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("StartAge", IsNullable=false)]
public DemographicsCriteriaStateStartAge[] StartAges {
get {
return this.startAgesField;
}
set {
this.startAgesField = value;
}
}
...
yöntem tipik olarak aşağıdaki gibi adlandırılır:
var obj = (MyObject) XmlDeserialize(someXmlString, typeof(MyObject));
Aşağıdaki kod satırı her zaman oldukça büyük bir zaman dilimi alır (her şeyle karşılaştırıldığında):
Burada neler oluyor örn. arka planda bir seri hale getirme derlemesi mi derliyor? Neden performans sorunu?
Bu performans sorununu gidermek için ne yapabilirim?
Bir yan not, yerine 'deneyin … Nihayet, '' 'seçeneğini kullanmış olabilirdin. – svick