gpt4 book ai didi

c# - 将 C# 对象数组序列化为字符串的最快方法

转载 作者:行者123 更新时间:2023-11-30 14:34:15 25 4
gpt4 key购买 nike

我正在寻找将 C# 对象数组序列化和反序列化为字符串的最快方法...

为什么是字符串而不是字节数组?好吧,我正在使用一个网络系统(具体来说是 Unity3d 网络系统),他们设置了一个相当烦人的限制,不允许发送字节数组或自定义类型,这是我需要的两件事(很难解释我的情况) .

为此,我想到的最简单的解决方案是将我的自定义类型序列化为一个字符串,然后传输该字符串,而不是直接发送对象数组。

所以,这就是问题所在!将对象数组序列化为字符串的最快方法是什么?我最好避免使用巫毒字符(不可见/特殊字符),因为我不确定 Unity3d 是否会剔除它们,但是 base64 编码没有充分利用允许的字符范围。我也担心使用base 64的效率。

显然,由于这与网络相关,因此序列化数据越小越好。

编辑:
一种可能的方法是序列化为字节数组,然后假装该字节数组是一个字符串。问题是,恐怕 .Net 2.0 或 Unity 的网络系统最终会剔除使用这种方法创建的一些特殊或不可见的字符……这是非常需要避免的事情。我希望有一个接近或等于速度的解决方案,但不使用任何可能被剔除的字符。 (我不知道这些是什么字符,但在从字节数组直接转换为字符串时,我对 Unity 有过不好的体验)

最佳答案

Json.Net是我一直使用它的简单方法,并以人类可读的方式完成工作。 Json 几乎是轻量级的,广泛用于通过网络发送数据。

I'll give you this answer as accepted, but I suggest adding base64 encoding to your answer!

–Georges Oates Larsen

谢谢,是的,如果可读性不是问题,这也是一个不错的选择。

关于c# - 将 C# 对象数组序列化为字符串的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com