首页 > 解决方案 > .NET - 行以序列化结束

问题描述

是否可以独立于操作系统为序列化设置行尾格式(\r\n vs \n)?所以在 WIN 和 Linux 中命令的结果会是一样的吗?

我的意思是结果

System.Text.Json.JsonSerializer.Serialize(data, new JsonSerializerOptions {WriteIndented = true});

或者

Newtonsoft.Json.JsonConvert.SerializeObject(data, Formatting.Indented);

将在两个系统中:

{\r\n "a": "b"\r\n .. }

非常感谢。汤姆

标签: c#asp.net-core.net-core

解决方案


没有内置任何内容,但您可以序列化为 aMemoryStream而不是直接序列化到文件,重新定位到流的开头,在其上打开 aStreamReader然后手动逐行(从 读取StreamReader)写入二进制模式打开的文件,输入您希望的任何行尾。

如果您正确使用Span<>slices 而不是Substring,它实际上与原始调用一样有效。


推荐阅读