Я читал, что пакет SDK для поиска Azure .NET использует NewtonSoft.Json для преобразования моделей в / из json в базовых вызовах REST API, поэтому я делал то же самое в своем собственном приложении.
У меня есть простое приложение, которое создает новый индекс с помощью .NET SDK. Для этого я определял свой индекс в файле json, используя формат, описанный здесь https://docs.microsoft.com/en-us/rest/api/searchservice/create-index, а затем я преобразовал это в объект Microsoft.Azure.Search.Models.Index с помощью Newtonsoft.
var index = JsonConvert.DeserializeObject<Microsoft.Azure.Search.Models.Index>(System.IO.File.ReadAllText("config.json");
Это работало нормально до того, как я настроил пользовательские анализаторы, но теперь, когда у меня есть пользовательские анализаторы в моей конфигурации, анализаторы, токенизаторы и TokenFilters не разрешаются в правильные типы. т.е. мой пользовательский анализатор десериализуется как Microsoft.Azure.Search.Models.Analyzer вместо Microsoft.Azure.Search.Models.CustomAnalyzer, то же самое касается Tokenizers и TokenFilters, они десериализуются в базовые типы.
Есть ли простой способ создать такой индекс в .NET SDK из файла json?