2016-05-24 13 views
0

Я новичок в C#, моя Visual Studio 2010, моя версия Windows Phone 7 исследуется в Интернете, и в этой версии команды «async» работает только Visual Studio 12 вверх.Windows Phone - использование Java-сервиса

У вас есть альтернатива?

Я могу сопоставить веб-сервис со ссылкой, но возврат всегда равен нулю, но в Android работает, какова может быть ошибка?

Я изменил код, чтобы он остался, как он мне сказал, но ошибка продолжает возникать: Unmarshalling Error: неожиданный элемент (uri: "webservices.com.br/"; site: "parameter1"). Ожидаемые элементы < {} параметр2> < {} параметр1> Следующий исходный код:

public partial class MainPage : PhoneApplicationPage{ 
    wsServico.cadastroTo cadastroTo = null; 

    public MainPage(){ 
    InitializeComponent(); 
    } 

    private void button1_Click(object sender, RoutedEventArgs e){ 
    wsServico.TesteJavaWsClient ws = new wsServico.TesteJavaWsClient(); 
    ws.returnServicoAsync("A", "B");   
    ws.returnServicoCompleted += new EventHandler<wsServico.returnServicoCompletedEventArgs>(ws_returnServicoCompleted); 

    } 

    void ws_returnServicoCompleted(object sender, wsServico.returnServicoCompletedEventArgs e){ 
    cadastroTo = e.Result; 
    textBox1.Text = cadastroTo.cadastroId.ToString();   

    } 

} 
+0

Попробуйте добавить этот старый [Async CTP через NuGet] (https://www.nuget.org/packages/AsyncCTP/), и вы будете использовать Асинхронный/Await. –

+0

На странице загрузки Nugget на сайте нет версии для Visual Studio 2010, что мне делать? –

+0

Здесь [сообщение из MSDN на Async CTP v3] (https://blogs.msdn.microsoft.com/lucian/2011/10/31/async-ctp-v3-installation/), попробуйте загрузить старый установщик и посмотрите, работает ли это - также, вам нужно использовать WP7, разработка для WP8 или даже Win10 для мобильных устройств будет иметь больше смысла? –

ответ

0

Вы устанавливаете ваше текстовое поле слишком рано - до возвращения вызова веб-службы. После того как вы отпустите вызов веб-службы, вы сразу же установите свое текстовое поле, которое будет пустым. Вы хотите установить значение в методе ws_returnServicoCompleted после того, как веб-служба вернет результаты.

private void button1_Click(object sender, RoutedEventArgs e){ 
    wsServico.TesteJavaWsClient ws = new wsServico.TesteJavaWsClient(); 
    ws.returnServicoAsync("A", "B");   
    ws.returnServicoCompleted += new EventHandler<wsServico.returnServicoCompletedEventArgs>(ws_returnServicoCompleted); 
} 

void ws_returnServicoCompleted(object sender, 
    wsServico.returnServicoCompletedEventArgs e){ 
     cadastroTo = e.Result; 
     cadastroTo.cadastroId.ToString(); 
} 
+0

Мне удалось решить проблему в противном случае, спасибо. –

+0

Отправьте свой ответ –

+0

Я разместил решение на своем личном веб-сайте ниже: http://www.tidicas.com.br/?p=911 –