我有这个对象。
我希望List Messages包含Message和DerivedMessage对象。
有什么想法吗? 谢谢。
public class ConversationAPI
{
[JsonProperty(PropertyName = "lU")]
public DateTime LastUpdated { get; set; }
[JsonProperty(PropertyName = "m", TypeNameHandling = TypeNameHandling.All)]
public List<Message> Messages { get; set; }
}
我从API中发送的内容为json格式,客户端应用程序将其反序列化。
The List<Message> Messages property contains either
[Serializable]
public class Message
{
[JsonProperty(PropertyName = "t")]
public string Text { get; set; }
[JsonProperty(PropertyName = "ty")]
public MessageType Type { get; set; }
}
或者
[Serializable]
public class DerivedMessage : Message
{
[JsonProperty(PropertyName = "sos")]
public string SomeOtherStuff{ get; set; }
}
我似乎无法对派生类型的数组进行反序列化。 我尝试了以下方法
var settings = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All,
TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full
};
var conversation = JsonConvert.DeserializeObject<ConversationResponse>(response.Content, settings);
我希望List Messages包含Message和DerivedMessage对象。
有什么想法吗? 谢谢。