Ich habe derzeit ein wirklich seltsames Problem und ich kann nicht herausfinden, wie es gelöst werden kann.XmlSerializer-Leistungsproblem bei der Angabe von XmlRootAttribute
Ich habe einen ziemlich komplexen Typ, den ich versuche, mit der XmlSerializer-Klasse zu serialisieren. Dies funktioniert tatsächlich gut und der Typ serialisiert ordnungsgemäß, aber scheint eine lange Zeit damit zu verbringen; ungefähr 5 Sekunden abhängig von den Daten im Objekt.
Nach ein wenig Profiling habe ich das Problem - bizarr - auf die Angabe eines XmlRootAttribute eingeschränkt, wenn ich XmlSerializer.Serialize aufruft. Ich tue das, um den Namen einer Sammlung, die von ArrayOf serialisiert wird, in etwas Sinnvolleres zu ändern. Sobald ich den Parameter entferne, ist die Operation fast sofort!
Irgendwelche Gedanken oder Vorschläge wären ausgezeichnet, da ich auf diesem einen völlig ratlos bin!
Okay, sieht aus wie das Problem ist, dass th Die Serialisierungsassembly wird für jede Serializerinstanz generiert, wenn Sie dem Serializer etwas anderes als einen Typparameter angeben! Deshalb - nehme ich an - sehe ich solche schreckliche Leistung. Kennt jemand irgendeinen Grund, warum der Standard XmlSerializer dies tun würde? Ich verstehe nicht, warum der Name des Root-Knotens nur bedeuten würde, dass der Cache nicht verwendet werden könnte? – Dougc