将对象序列化为XML:IList <CustomObject>属性导致异常

Nic*_*rca 0 c# serialization

我正在使用以下函数来尝试将对象序列化为XML ..

 public static string SerializeObject<T>(T obj)
        {
            try
            {
                string xmlString = null;
                MemoryStream memoryStream = new MemoryStream();
                XmlSerializer xs = new XmlSerializer(typeof(T));
                XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
                xs.Serialize(xmlTextWriter, obj);
                memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
                xmlString = UTF8ByteArrayToString(memoryStream.ToArray()); return xmlString;
            }
            catch (Exception ex)
            {
                return string.Empty;
            }
        }
Run Code Online (Sandbox Code Playgroud)

尝试序列化其中包含IList属性的对象时,我得到以下异常..

Cannot serialize member 'ObjectModel.Order.LineItems' of type 'System.Collections.Generic.IList
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我改变我的功能以适应这种情况吗?

有什么我可以做这个现有的代码来查看输入对象.如果它的Ilist类型将其更改为List?如果可能的话,somoeone可以帮我编写代码吗?

Bro*_*ass 6

对此没有很好的解决方案,只有List<T>在这种情况下使用具体类型的解决方法- 您可以将现有属性更改为List<T>或添加仅用于类型序列化的附加属性List<T>(以及XML - 忽略您现有的属性).