将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版本。