我尝试序列化/反序列化下面的类对象:最佳方式吗?
public class LiveDataFeedModuleConfiguration
{
public Dictionary<VendorID, dynamic> LiveDataFeedAPIConfigurations { get; private set; }
public LiveDataFeedModuleConfiguration(Dictionary<VendorID, dynamic> liveDataFeedAPIConfigurations)
{
this.LiveDataFeedAPIConfigurations = liveDataFeedAPIConfigurations;
}
public void AddElement(VendorID vendorId, dynamic liveDataFeedAPIConfiguration)
{
LiveDataFeedAPIConfigurations.Add(vendorId, liveDataFeedAPIConfiguration);
}
}
我试图ServiceStack但是当我反序列化存储为字典中的值的动态对象是空的。我也尝试过Json.Net,但我不喜欢反序列化后的字典包含JObjects。我只是想有LiveDataFeedModuleConfiguration
类型的对象返回包含Dictionary<VendorID, dynamic>
在那里我可以很容易的.Net投从动态tytpe到知对象类型。在Json.net中有没有办法绕过JObject“混乱”,并正确地反序列化为存储在字典值中的类型?我用Newtonsoft.Json.JsonConvert.DeserializeObject<LiveDataFeedModuleConfiguration>(string jsonContent);
。但它将反序列化为不需要的jObject类型的字典值。
任何解决方案应该得到这个与json.net工作(给定的,我可以在一个通用的反序列化方法做正确的序列化)或其他库的欢迎。
感谢
它并不像你在这方面取得了很大的成功。您可能需要从头开始创建此功能或避免使用字典,并完全避免此问题。当你有一个解决方案时,请在这里回复 – ldgorman 2013-05-01 12:22:33
@Idogorman,的确,我确信大多数.Net JSON序列化程序库库处理动态性的能力很差。我决定逐个序列化每个POCO,而不是将它们存储在动态字典中。 – 2013-05-01 13:58:10