【发布时间】:2014-06-10 01:27:12
【问题描述】:
我有一个Table
[JsonConverter(typeof(ToTableJsonConverter))]
class MyTable : Table
{}
internal class ToTableJsonConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var tables = (List<Table.Table>)value;
var array = tables.ToArray();
writer.WriteValue(array);
}
}
我有一个如下所示的消息类:
class Message
{
public List<Table.Table> Tables { get; set; }
}
错误信息:
不支持的类型:
PokerServer.Table.TablePineapple。使用JsonSerializer类获取对象的 JSON 表示。路径 'Tables.$values'。
我可以看到错误消息,但我不知道该怎么做。最终目标是使用JsonConverter 只发送必要的属性,而无需设置所有属性。
编辑: 另外,我有一个 ContractResolver 需要检索所有属性,所以我需要一个不会阻止我的 ContractResolver 工作的解决方案。
【问题讨论】:
-
再次阅读错误信息 - 与列表无关(这可以通过序列化
List<String>来简单显示)