将Iso8601TimeSpanConverter添加到JsonConverter列表会抛出ArrayTypeMismatchexception
我正在使用AutoRest从Swagger定义文件中为REST API自动生成ac#类。
问题是当执行客户端类初始化方法时,它会在以下代码中抛出ArrayTypeMismatchexception:
SerializationSettings = new JsonSerializerSettings { Formatting = Formatting.Indented, DateFormatHandling = DateFormatHandling.IsoDateFormat, DateTimeZoneHandling = DateTimeZoneHandling.Utc, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver(), Converters = new List { new Iso8601TimeSpanConverter() } }
令人讨厌的代码是添加到JsonConverters列表中的Iso8601TimeSpanConverter。
顺便说一句,这只发生在VSIX包中运行此代码时。 在独立的应用程序上,它工作正常。
我想知道它是否与多个版本的Newtonsoft.Json加载和碰撞有关?
有任何想法吗?
我遇到了同样的问题,但最终通过使用app.config来统一Newtonsoft.Json绑定来解决它。
问题是,Iso8601TimeSpanConverter可能inheritance了与您在AutoRest上使用的版本不同的JsonConverter版本。