WP7中的两个Web服务在一起



我想在另一个Web服务调用中使用Web服务呼叫的结果,该呼叫正是在此之后...但是第二个WebService在第一个Webs服务的结果之前被调用。...我正在使用WP7应用程序....

PhoneService.WebServiceSoapClient register = new PhoneService.WebServiceSoapClient();
register.InsertNewCollegeCompleted += register_InsertNewCollegeCompleted;               
register.InsertNewCollegeAsync(newCollegeName);
register.InsertNewCollegeCompleted += register_InsertNewCollegeCompleted;
register.insertdataCompleted += register_insertdataCompleted;            
register.insertdataAsync(Name.Text, email.Text, contact.Text,
        int.Parse(partnerid.Text.Substring(2)), student_no.Text, pass.Text,
        gender, branchid, yearid, collegeid, shirtreqd, accom);
register.insertdataCompleted += register_insertdataCompleted;
void register_insertdataCompleted(object sender, PhoneService.insertdataCompletedEventArgs e)
{
    MessageBox.Show("TT ID is" + e.Result);
}
void register_InsertNewCollegeCompleted(object sender, PhoneService.InsertNewCollegeCompletedEventArgs e)
{
    collegeid = e.Result;
}

您可以使用asynccalls,基本上您想先使用注册,然后在您的登录API中响应。
我已经通过异步呼叫等待来完成此操作,您可以查看链接。http://developer.nokia.com/community/wiki/asynchronous_programming_for_windows_phone_8而且这也将有所帮助:
http://www.codeproject.com/articles/518856/task-parallel-library-library-and-andashc-await-functionconitit

以第一个服务调用的完成方法执行第二个Web服务调用

在您的情况下,请在register_insertnewcollegecleded中致电register.insertdataasync方法为

{
....
....
            PhoneService.WebServiceSoapClient register =
     new PhoneService.WebServiceSoapClient();
            register.InsertNewCollegeCompleted += register_InsertNewCollegeCompleted;               
            register.InsertNewCollegeAsync(newCollegeName); 
....
....
}

    void register_InsertNewCollegeCompleted(object sender, PhoneService.InsertNewCollegeCompletedEventArgs e)
        {
            collegeid = e.Result;
    register.insertdataCompleted += register_insertdataCompleted;            
        register.insertdataAsync(Name.Text, email.Text, contact.Text,
                int.Parse(partnerid.Text.Substring(2)), student_no.Text, pass.Text,
                gender, branchid, yearid, collegeid, shirtreqd, accom);
        }
    void register_insertdataCompleted(object sender, PhoneService.insertdataCompletedEventArgs e)
    {
        MessageBox.Show("TT ID is" + e.Result);
    }

最新更新