在我的 VS2017 EF-Core 2.2解决方案中,我有 3个项目:
后端包含对DataModels项目的项目引用。
由于我的本地 SQLite 数据库仅存储DataModels类中定义的内容的一部分,因此我没有添加对DataModels项目的项目引用,而是在Frontend中创建了Windows 10符号链接项目到DataModels目录,这使我可以修改
之类的DataModel类namespace DataModels
{
[Table("Info")] // Used for front- and backend
public abstract class BaseInfo
{
public Guid Id { get; set; }
[Required]
[StringLength(200)]
public string Title { get; set; }
#if FRONTEND // Only available on frontend side
[NotMapped]
public bool IsSelected {get; set;}
#endif
#if !FRONTEND // Only available on backend side
[Required]
[StringLength(25)]
public MediaProcessingStateEnum MediaProcessingState { get; set; }
#endif
}
}
这很好,但是现在我有问题了, 后端使用 NewtonSoft.Json 序列化数据,并在其中添加 $ type 项(因为存在抽象类) 但是当我想使用
在前端端反序列化json内容时var info = JsonConvert.DeserializeObject<Info>(content, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto
});
反序列化器无法创建该类的实例,因为缺少到DataModels程序集的(typeinfo)链接!
"Error resolving type specified in JSON 'DataModels.Info, DataModels'. Path '$type', line 1, position 41."
有人可以给我一个想法,如何在不放弃上述概念的情况下解决 NewtonSoft.Json 反序列化器中的“ 缺少参考”问题吗?>