From 5a6f1220e688f2432616b54a8967c63df61d2929 Mon Sep 17 00:00:00 2001 From: Marc Hernandez Date: Sun, 5 Nov 2023 04:33:48 -0800 Subject: [PATCH] x) Properly handle types on polymorphic arrays --- ser/XmlFormatter2.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ser/XmlFormatter2.cs b/ser/XmlFormatter2.cs index 2cc014b..59f1b78 100644 --- a/ser/XmlFormatter2.cs +++ b/ser/XmlFormatter2.cs @@ -443,7 +443,17 @@ namespace lib { XmlElement arrElem = (XmlElement)arrNodeList.Item(i); - arr.SetValue( Deserialize( arrElem, typeElem ), i ); + var finalType = typeElem; + if (arrElem.HasAttribute("t")) + { + var typename = arrElem.GetAttribute("t"); + finalType = FindType(typename); + + if (finalType == null) + finalType = typeElem; + } + + arr.SetValue( Deserialize( arrElem, finalType), i ); } }