我正在编写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”,其标识为“ Newtonsoft.Json,版本= 11.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed”
我相信此GitHub Issue是相关的。关于该问题的This comment似乎表明,将Newtonsoft.Json 12.x添加为Function项目的直接依赖项可能会有所帮助。这在另一个Function项目中有所帮助,但现在我又碰到了这堵墙。我有什么办法可以减轻这种情况?
答案 0 :(得分:2)
您可以尝试做的一件事是绕过耐用功能使用的序列化逻辑,并自己进行序列化。例如,不要这样做:
public static void MyFunc([ActivityTrigger] MyCustomType input)
{
// ...
}
尝试这样做:
public static void MyFunc([ActivityTrigger] JObject json)
{
// manually convert the JObect into MyCustomType
}
让我知道这是否能进一步帮助您。