C# 将Iso8601TimeSpanConverter添加到JsonConverter列表会引发ArrayTypeMismatch异常
我使用AutoRest从一个Swagger定义文件为restapi自动生成一个c#类 问题在于,当执行客户机类初始化方法时,它会在以下代码中引发ArrayTypeMismatch异常:C# 将Iso8601TimeSpanConverter添加到JsonConverter列表会引发ArrayTypeMismatch异常,c#,json.net,swagger,vsix,autorest,C#,Json.net,Swagger,Vsix,Autorest,我使用AutoRest从一个Swagger定义文件为restapi自动生成一个c#类 问题在于,当执行客户机类初始化方法时,它会在以下代码中引发ArrayTypeMismatch异常: SerializationSettings = new JsonSerializerSettings { Formatting = Formatting.Indented, DateFormatHandling = DateFormatHandling.IsoDateFormat, Dat
SerializationSettings = new JsonSerializerSettings
{
Formatting = Formatting.Indented,
DateFormatHandling = DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Utc,
NullValueHandling = NullValueHandling.Ignore,
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
ContractResolver = new ReadOnlyJsonContractResolver(),
Converters = new List<JsonConverter>
{
new Iso8601TimeSpanConverter()
}
}
SerializationSettings=新的JSONSerializationSettings
{
格式化=格式化。缩进,
DateFormatHandling=DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling=DateTimeZoneHandling.Utc,
NullValueHandling=NullValueHandling.Ignore,
ReferenceLoopHandling=ReferenceLoopHandling.Serialize,
ContractResolver=新的只读JSONContractResolver(),
转换器=新列表
{
新的Iso8601TimeSpanConverter()
}
}
有问题的代码是添加到JSONConverter列表中的Iso8601TimeSpanConverter
顺便说一句,只有在VSIX包中运行此代码时才会发生这种情况。在一个独立的应用程序上,它运行良好
我想知道这是否与多个版本的Newtonsoft.Json加载和冲突有关
有什么想法吗?我遇到了同样的问题,但最终通过使用app.config统一Newtonsoft.Json绑定解决了这个问题
<configuration>
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
问题是Iso8601TimeSpanConverter可能继承的JsonConverter版本与您在自动测试中使用的版本不同 你能不能请你的问题包括异常的完整输出,包括异常类型、消息、内部异常和回溯?我在WPF DesginMode中得到了这个异常!不幸的是,没有特殊的异常消息:
System.ArrayTypeMismatchException发生;HResult=-2146233085;Message=试图以与数组不兼容的类型访问元素。;Source=mscorlib
StackTrace:at System.Collections.Generic.List'1.Add(T项)at Client.WebApi.MyRestApi.Initialize()
在我的情况下,安装newtonsoft软件包时,所有项目中都会自动生成app.config。但是我仍然得到这个错误(v11.0.2)。即使在统一newton软件包之后,我也得到了这个错误。还有其他线索吗?