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[]))]
在我的 class
上 ServiceContract
返回响应。
我在 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[]))]
在我的 class
上 ServiceContract
返回响应。