asp.net-core - .Net Core 3.1 EdmModel的Json序列化
问题描述
我遇到了一个问题,但我不确定它是错误还是已知行为(找不到任何东西)。
因此,我们使用了 Orleans 项目,并在我们的状态之一中存储了一个 EdmModel。问题是奥尔良在 EdmModel 的序列化过程中引发了错误(使用 Newtonsoft)。所以我想,好吧,让我们找出我在构建 Edm 时做错了什么(它是“手工”构建的,因为我们没有模型(由用户创建))。
为了检查发生了什么,我尝试自己序列化 Edm 并遇到以下情况:
Self referencing loop detected for property 'DeclaringType' with type 'Microsoft.OData.Edm.EdmEntityType'. Path 'SchemaElements[0].DeclaredKey[0]'.
所以我想,好吧。我做了一些不好的事情,这就是序列化不起作用的原因,但是在评论我的代码以缩小问题之后,我得到了以下内容:
var model = new EdmModel();
try
{
var test = JsonConvert.SerializeObject(model);
}
catch (Exception e)
{
var poney = 1;
}
try
{
var test = JsonConvert.SerializeObject(model, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
}
catch (Exception e)
{
var poney = 2;
}
它仍然引发错误。
Self referencing loop detected for property 'Model' with type 'Microsoft.OData.Edm.Csdl.CsdlSemantics.CsdlSemanticsModel'. Path 'ReferencedModels[1].SchemaElements[0]'
第二次尝试捕获 OutOfMemory。
所以我问是否有办法将 EdmModel 序列化为 Json ?因为如果这是我们可以做的,就是将 EdmModel 存储为 Grain 状态的字符串,并在 Getter/Settter 中进行序列化/反序列化。
或者也许与 Xml?
非常感谢您的帮助和投入:)
解决方案
推荐阅读
- github-api - 我只得到一个存储库
- vba - 无法摆脱 vba 中的“旧格式或无效类型库”错误
- python - 将python列表插入数据框列明智
- conv-neural-network - PyTorch中Conv1D类对象权重的自定义初始化
- python - 我的两种算法的最坏情况运行时间是多少
- uitabbar - iPhone XR iOS 12 UITabBarItem 标题重叠在图片上方
- excel - 平均每 n 行并排除值
- jdbc - 消息已保存 Kafka 主题未通过 Kafka 连接器正确保存
- ruby-on-rails - 无法在 Rails 上启动默认服务器
- javascript - Jasmine:测试数组是否包含具有特定属性的对象元素而没有自定义匹配器