我正在使用AutoRest从Swagger定义文件中为REST API自动生成c#类 .
问题是当执行客户端类初始化方法时,它会在以下代码中抛出ArrayTypeMismatch异常:
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()
}
}
令人讨厌的代码是添加到JsonConverters列表中的Iso8601TimeSpanConverter .
顺便说一句,这只发生在VSIX包中运行此代码时 . 在独立的应用程序上,它工作正常 .
我想知道它是否与多个版本的Newtonsoft.Json加载和碰撞有关?
有任何想法吗?
1 回答
我遇到了同样的问题,但最终通过使用app.config来统一Newtonsoft.Json绑定来解决它 .
问题是,Iso8601TimeSpanConverter可能继承了与您在AutoRest上使用的版本不同的JsonConverter版本 .