Я использую AutoRest для автоматического создания класса С# для REST API из файла определения Swagger.
Проблема в том, что когда выполняется метод инициализации клиентского класса, он генерирует исключение 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()
}
}
Оскорбительный фрагмент кода — это Iso8601TimeSpanConverter, добавленный в список JsonConverters.
Кстати, это происходит только при запуске этого кода в пакете VSIX. В отдельном приложении работает нормально.
Интересно, связано ли это с загрузкой и столкновением нескольких версий Newtonsoft.Json?
Любые идеи?
ToString()
вывод исключения, включая тип исключения, сообщение, внутреннее исключение и проследить? - person dbc   schedule 06.09.2016System.ArrayTypeMismatchException occurred; HResult=-2146233085; Message=Attempted to access an element as a type incompatible with the array.; Source=mscorlib
StackTrace: at System.Collections.Generic.List'1.Add(T item) at Client.WebApi.MyRestApi.Initialize()
- person Marcel   schedule 30.11.2016