AutoRest автоматически сгенерированный код не инициализируется - PullRequest
0 голосов
/ 02 января 2019

У меня есть приложение-функция Azure, которое использует автоматически сгенерированный клиент, созданный AutoRest (0.17.3). Когда приложение-функция вызывает метод инициализации автоматически сгенерированного кода, выдается следующая ошибка:

Microsoft.Azure.WebJobs.Script: One or more errors occurred. mscorlib: Attempted to access an element as a type incompatible with the array.

Ошибка возникает при добавлении Iso8601TimeSpanConverter в качестве преобразователей в JsonSerializerSettings

SerializationSettings = new Newtonsoft.Json.JsonSerializerSettings
        {
            Formatting = Newtonsoft.Json.Formatting.Indented,
            DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat,
            DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc,
            NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
            ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize,
            ContractResolver = new Microsoft.Rest.Serialization.ReadOnlyJsonContractResolver(),
            Converters = new  System.Collections.Generic.List<Newtonsoft.Json.JsonConverter>
                {
                    new Microsoft.Rest.Serialization.Iso8601TimeSpanConverter()
                }
        };

Мои настройки app.config для newtonsoft.json:

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
  </dependentAssembly>

Эта проблема не воспроизводится из консольного приложения, но возникает при развертывании в приложении-функции Azure.

...