Получение координат и сохранение в c # модели с использованием async [duplicate]

2

Я пытаюсь получить координаты, хранящиеся в модели адреса. Я использую API Google Maps для Chadly/Geocoding.net, чтобы получить координаты, но для этого требуется асинхронность, и я никогда не использовал асинхронизацию внутри модели и у меня не получается заставить ее работать.

Это выкидывает мне эту ошибку

"Не удалось неявно преобразовать тип" Geocoding.Location "в" System.Threading.Tasks.Task<Geocoding.Location> "

Что-нибудь особенное, что я должен сделать, чтобы заставить это работать?

   public string FullAddress 
    {
        get 
        { 
            return Address + " " + City + " " + State + "" + ZipCode;
        }
    }
    public async Task<Geocoding.Location> Coordinates
    {
        get
        {
            IEnumerable<Address> addresses = await geocoder.GeocodeAsync(FullAddress);

            return addresses.First().Coordinates;
        }

    }
  • 0
    Какие проблемы? Есть ошибки?
  • 0
    Эй, Nkosi Я обновил с моей ошибкой, которую я получаю.
Показать ещё 2 комментария
Теги:

2 ответа

2
Лучший ответ

Coordinates должны быть преобразованы в метод. Вы не можете иметь асинхронные свойства

public async Task<Geocoding.Location> GetCoordinates(){
    IEnumerable<Address> addresses = await geocoder.GeocodeAsync(FullAddress);
    return addresses.First().Coordinates;
}
0

к сожалению, вы не можете использовать асинхронный метод получения свойств в С#.

Просто переключите его на метод, и он будет работать нормально.

public async Task<Geocoding.Location> GetCoordinates()
{
     IEnumerable<Address> addresses = await geocoder.GeocodeAsync(FullAddress);

     return addresses.First().Coordinates;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню