mrk*_*yak 14 .net c# mongodb mongodb-.net-driver
我正在从事一个集成项目。将实体插入 mongodb 时出现错误。
错误消息返回以下字符串:
MongoDB.Bson.BsonSerializationException:“序列化类 Order 的 OrderData 属性时发生错误:类型 MarketplaceOrder 未配置为此 ObjectSerializer 实例的允许类型。'
之前几步,我从任何 api 资源获取数据并将数据转换为我的通用对象,<T>如下行所示。
var data = (JArray)returnDataFromNetwork.Data;
var order = data.ToObject<T>()
Run Code Online (Sandbox Code Playgroud)
将实体插入 mongodb 时出现错误
_orderRepository.InsertAsync(new Order
{
OrderData = order,
});
Run Code Online (Sandbox Code Playgroud)
public class Order
{
public object OrderData { get; set; }
}
public class MarketplaceOrder
{
[JsonProperty("marketplace")]
public string Marketplace { get; set; }
[JsonProperty("account_id")]
public int AccountId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
感谢您的支持,
我试图解释的所有事情都是关于“hangfire”(后台服务)项目的。首先,我在服务器控制台上收到此错误消息。然后我尝试在本地调试以了解问题所在。我无法理解错误消息的详细信息。
dod*_*odo 25
我认为你使用 2.19 .net 驱动程序。请参阅发行说明以及您的问题的描述。
ObjectSerializer 已更改为仅允许反序列化被认为安全的类型。哪些类型被认为是安全的,由新的可配置的AllowedTypes函数(类型为Func<Type, bool>)确定。默认的AllowedTypes函数是ObjectSerializer.DefaultAllowedTypes,它对于我们认为安全的许多众所周知的框架类型返回true。一个典型的示例可能是允许所有默认允许的类型以及您自己的类型。这可以通过以下方式完成:
解决方案:
var objectSerializer = new ObjectSerializer(type => ObjectSerializer.DefaultAllowedTypes(type) || type.FullName.StartsWith("MyNamespace")); BsonSerializer.RegisterSerializer(objectSerializer);
| 归档时间: |
|
| 查看次数: |
9214 次 |
| 最近记录: |