c# - Azure Function v2 引用了 Newtonsoft.Json 版本高于 Microsoft.NET.Sdk.Functions 的项目
问题描述
我正在编写一个 v2 Azure 持久函数。将 C# 对象传递给辅助活动函数时,我在JsonConverter
用于序列化传递的类型的自定义中遇到运行时错误。自定义JsonConverter
位于必须引用 Newtonsoft.Json 12.x 的库中,而 Microsoft.NET.Sdk.Functions 被锁定到 11.0.2。
jObject 错误 CS1705:具有标识“ContractLibrary,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”的程序集“ContractLibrary”使用“Newtonsoft.Json,Version=12.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”比具有标识“Newtonsoft.Json,版本=11.0.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed”的引用程序集“Newtonsoft.Json”更高的版本
我相信这个GitHub 问题是相关的。对该问题的此评论似乎表明将 Newtonsoft.Json 12.x 添加为 Function 项目的直接依赖项可能会有所帮助。这在另一个 Function 项目中有所帮助,但现在我又碰到了这堵墙。我能做些什么来减轻这种情况吗?
解决方案
您可以尝试的一件事是绕过 Durable Functions 使用的序列化逻辑并进行自己的序列化。例如,不要这样做:
public static void MyFunc([ActivityTrigger] MyCustomType input)
{
// ...
}
尝试这样做:
public static void MyFunc([ActivityTrigger] JObject json)
{
// manually convert the JObect into MyCustomType
}
让我知道这是否能让你更进一步。
推荐阅读
- c# - ASP.NET CORE 3.1 如何从 HandleRequirementAsync 重定向
- excel - .Find 不工作和 If 语句基于 .Find 方法的结果。什么表达式可以传递给 .Find 方法?
- sass - 如何在数据中使用 sass 字符串替换:图像字符串?
- c# - 在“标签”之间切换(通过底部导航) - 闪烁,有什么建议吗?
- javafx - 我想移动文本,以便在显示图像时它位于窗格的右下角。我不确定如何设置位置
- excel - 如何禁用输入框中的多行/列选择?
- c++ - 性能图示例
- python - 为 Python 应用程序开发图形界面
- javascript - 有没有办法在已经存在的构造函数中拥有一个构造函数?
- r - 如何从下面的 for 循环中创建一个函数