Код: Выделить всё
Я передаю эту строку XML в метод,
Код: Выделить всё
XmlSerializationUtility.FromXml(xml, "Form")
Код: Выделить всё
public static T FromXml(string xml, string root)
{
XmlSerializer xmlSer = GetXMLSerializer(typeof(T), new XmlRootAttribute(root));
var stringReader = new StringReader(xml);
T result = (T)xmlSer.Deserialize(stringReader);
// Output or inspect the deserialized value
Console.WriteLine("Deserialized value: " + result?.ToString());
// Return the deserialized result
return result;
}
Код: Выделить всё
private static XmlSerializer GetXMLSerializer(Type type, XmlRootAttribute root)
{
string key = string.Format(CultureInfo.InvariantCulture, "CachedXmlSerializer:{0}:{1}", type, root.ElementName);
bool isCached = _serializers.TryGetValue(key, out XmlSerializer ser);
if (!isCached)
{
ser = new XmlSerializer(type, root);
_serializers.Add(key, ser);
}
return ser;
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ialization