在 dotnet 核心 (.net 5) 中反序列化 xml 字符串的大小是否有限制?
一切正常。但是当我开始获得 2500 多行 xml 字符串时,我得到了 '值对于无符号字节来说太大或太小'。
疑难解答:
测试了相同 xml 数据的旧版本(有 2000 多行,但少于新的)。所以它是数据相关的。
使用 Visual Studio 的 Paste as XML
进行测试以从 xml 生成类。新类和旧类完全相同。所以结构/模式是
不变。
在几个xml验证工具中测试了新的xml,都报告它没有错误。所以这不是数据错误。
从上面看来我达到了一些限制。
我尝试过的事情:
using System.Xml.Serialization;
using System.Text;
var stringReader = new StringReader(xmlStr);
var serializer = new XmlSerializer(typeof(MyClass));
var obj1 = serializer.Deserialize(stringReader) as MyClass;
var bytes = Encoding.UTF8.GetBytes(xmlStr);
MemoryStream memStream = new(bytes);
var obj2 = serializers.Deserialize(memStream) as MyClass;
我尝试定位不同的 net5.0-windows7.0
、net5.0-windows10.0.20348.0
、net5.0-10.0.19041.0
有什么想法吗? (对不起,如果我的问题很原始,我正在学习)。
答案 0 :(得分:0)
问题是我在 Visual Studio 中使用了 Past XML as Class
剪贴板命令。它似乎已将 byte
分配给来自 xml string
的一些整数值,以及一些分配的 ushort
。
我在 Visual Studio 生成的类中将所有 byte
替换为 ushort
,然后一切正常!