【发布时间】:2012-02-29 08:24:36
【问题描述】:
有没有一种方法可以自动将 cmets 添加到 Json.NET 的序列化输出中?
理想情况下,我认为它类似于以下内容:
public class MyClass
{
[JsonComment("My documentation string")]
public string MyString { get; set; }
}
或者(如果可以避免注释就更好了):
public class MyClass
{
/// <summary>
/// My documentation string
/// </summary>
public string MyString { get; set; }
}
会产生:
{
// My documentation string
"MyString": "Test"
}
我问的原因是我们使用 Json.NET 序列化配置文件,以后可以手动更改。我想在我的 C# 配置类中包含文档,并将其复制到 JSON 中,以帮助以后可能需要更改文件的人。
正如 RoToRa 在下面指出的,在 JSON 规范中技术上不允许 cmets(请参阅 http://www.json.org 的方便语法图)。但是,Json.NET site 上的功能表包括:
支持读写cmets
和Newtonsoft.Json.JsonTextWriter.WriteComment(string) 存在,它确实输出了一条评论。我对创建 cmets 的简洁方式感兴趣,而不是直接使用 JsonTextWriter。
【问题讨论】:
-
@JamesNewtonKing 目前有这样的计划或可用吗?