Указанное приведение недопустимо. Из облачного кода результат в Xamarin

#parse-platform #xamarin #xamarin.ios #parse-cloud-code

#разбор платформы #xamarin #xamarin.ios #parse-cloud-code

Вопрос:

Я получаю сообщение об ошибке «Указанное приведение недопустимо». при попытке вернуть список словарей из облачного кода в Xamarin.

Ниже приведены вызовы, которые я пробовал.

Я ценю время и отзывы о том, как я могу выполнить эту работу и вернуть список словарей.

 var searchResults = await Parse.ParseCloud.CallFunctionAsync<List<Dictionary<string, string>>>("searchAlbums", new
Dictionary<string, object> {
                    {"firstName", firstName},
                    {"lastName", lastName},
                });

var searchResults = await Parse.ParseCloud.CallFunctionAsync<IEnumerable<IDictionary<string, string>>>("searchAlbums", new
Dictionary<string, object> {
                    {"firstName", firstName},
                    {"lastName", lastName},
                });

var searchResults = await Parse.ParseCloud.CallFunctionAsync<IEnumerable<IDictionary<string, object>>>("searchAlbums", new
Dictionary<string, object> {
                    {"firstName", firstName},
                    {"lastName", lastName},
                });

var searchResults = await Parse.ParseCloud.CallFunctionAsync<List<Dictionary<string, object>>>("searchAlbums", new
Dictionary<string, object> {
                    {"firstName", firstName},
                    {"lastName", lastName},
                });
  

Комментарии:

1. Какой тип ожидаемого типа должен быть возвращен из вызова? т.е. Какой тип для searchResults

Ответ №1:

Попробуйте это

 IDictionary<string, object> dict = new Dictionary<string, object> 
    {
        {"firstName", firstName},
        {"lastName", lastName},
    };

var searchResults = await Parse.ParseCloud.CallFunctionAsync<object>("searchAlbums", dict);
  

Оттуда вы должны увидеть, что возвращается, а затем вы можете использовать более конкретный тип для ожидаемого результата.

Комментарии:

1. Просто попробовал этот код и добавил консоль. WriteLine(SearchResults. GetType()); и он возвращает: System . Коллекции. Generic.List`1[System. Объект]

2. хорошо, во время отладки поставьте точку останова и посмотрите, как выглядят объекты в списке. это должно дать вам представление о том, что вам нужно для этого. пока вы подтвердили, что это список чего-то. 🙂