WCF REST 服务字典序列化

WCF REST service dictionary serialization

我在 WCF 服务中序列化字典时遇到问题。

[DataContract]
    public class UserInfo
    {
        [DataMember]
        public Guid ID { get; set; }

        [DataMember]
        public string Name { get; set; }

        [DataMember]
        public IDictionary<string, List<string>> Permissions { get; set; } = new Dictionary<string, List<string>>();
    }

这是当前响应的示例

{
    "ID": "1",
    "Name": "admin",
    "Permissions": [
        {
            "Key": "Users",
            "Value": [
                "Read",
                "Edit"
            ]
        },
        {
            "Key": "Management",
            "Value": [
                "Read"
            ]
        }
    ]
}

这是期望的回应

{
    "ID": "1",
    "Name": "admin",
    "Permissions": {
        "Users": ["Read", "Edit"],
        "Management": ["Read"]
    }
}

有没有办法在全球或特定 属性 上实施?

我已经按照解释 here.

使用定制词典解决了这个问题

自从我为序列化创建了这个类型

AjaxDictionary<string, string[]>

我必须添加

[ServiceKnownType(typeof(string[]))]

在我的 classServiceContract 返回响应。