首页 > 解决方案 > XML 序列化和可为空的属性

问题描述

我正在研究需要在我们的数据库中获取表的 xml 文件的项目。当我在后端处理 asp.net 核心时,我需要查询数据库并序列化为 xml 并返回响应。根据我下面的代码,我收到以下错误。

[HttpGet, Route("GetXml")]
        public ActionResult<GenericResponse> GenerateXml()
        {
            var cellData = _repoWrapper.Purchase.FindByCondition(a => a.IsDeleted == false);
            //since servicestack we used in text also have xml serializer so it is necessary to use system.xml .serializer method 
            System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(cellData.GetType());

            String s= x.ToString();
            return _response;
        }

对于此代码,我收到如下错误: System.InvalidOperationException: '要实现 XML 可序列化,从 IEnumerable 继承的类型必须在其继承层次结构的所有级别上都有 Add(System.Object) 的实现。Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable'

同样,这样做:

[HttpGet, Route("GetXml")]
        public ActionResult<GenericResponse> GenerateXml()
        {
            var cellData = _repoWrapper.Purchase.FindByCondition(a => a.IsDeleted == false).ToList();
            //since servicestack we used in text also have xml serializer so it is necessary to use system.xml .serializer method 
            System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(cellData.GetType());

            String s= x.ToString();
            return _response;
        }

我收到如下错误:System.InvalidOperationException:'存在反映类型'System.Collections.Generic.List'的错误和:InvalidOperationException:无法序列化System.Nullable'1 [System.Double]类型的成员'Total'。XmlAttribute/XmlText 不能用于编码复杂类型。

标签: c#xml-serializationasp.net-core-2.0

解决方案


推荐阅读