Вызов веб-сервиса с возвратом дохода на Windows Phone - PullRequest
0 голосов
/ 01 марта 2011

Я занимаюсь разработкой приложения для Windows Phone 7 и использую аутентификацию Windows Live для доступа к контактам пользователей. У меня есть веб-сервис, используя следующий метод:

public IEnumerable<LiveIDContact> GetContactsInformationYield(string LocationID, string DelegationToken)
    {
        string uriTemplate = "https://livecontacts.services.live.com/@L@{0}/rest/LiveContacts/Contacts";
        var xdoc = WindowsLiveContactAPIRequest(LocationID, DelegationToken, uriTemplate);
        var contacts = (from contact in xdoc.Descendants("Contact")
                        select contact).ToArray();

        foreach (var con in contacts)
        {
            RetrieveCID(LocationID, DelegationToken, con);
            LiveIDContact c = new LiveIDContact()
            {
                ID = con.Element("ID").Value,
                DisplayName = con.Element("Profiles").Element("Personal").Element("DisplayName").Value,
                CID = (con.Element("CID") != null ? con.Element("CID").Value : "")

            };

            yield return c;
        }

    }

Как вызвать метод в приложении:

public void GetContactInformationAsync()
    {
        LiveIDClient.GetContactsInformationYieldAsync(LocationID, ConsentToken);
    }

Вот проблема, когда я вызываю этот метод и жду завершения события. Обновление списка контактов в моем приложении занимает от 4 до 5 минут (проблема с производительностью). Есть ли способ, которым событие происходит при каждой доходности? Чтобы я мог обновить свой список из этого события?

Я нигде не смог найти ответ, поэтому будем надеяться, что кто-то знает ответ.

1 Ответ

0 голосов
/ 01 марта 2011

Делает ли это отдельный HTTP-вызов для каждого контакта?Если это так, то я думаю, что вам просто нужно изменить дизайн веб-службы, чтобы он вызывал, скажем, каждую сотню контактов.

...