在WebMethod的帮助下分配值时遇到问题。我有一个方法,我称之为WebMethod:
................
svc.GetNameCompleted += GetUserName;
svc.GetNameAsync(ordercode);
string name = MyName;
................
问题是第三行首先执行(string name = MyName;
)然后执行GetUserName()
方法。
在GetUserName()
方法中,我为MyName
变量赋值,但由于这是在{string name=MyName
之后调用的,所以第一次执行项目时,我得到{{ 1}}因为string name = null;
变量是MyName
。
答案 0 :(得分:1)
svc.GetNameCompleted += GetUserName;
Task<string> nameTask = svc.GetNameAsync(ordercode);
...
string name = await nameTask;
答案 1 :(得分:0)
据我所知,你不能。 Silverlight中的所有Web服务调用都是异步的。您无法同步调用异步方法。 您应该以异步方式捕获结果,并在方法完成执行后立即告诉Silverlight如何处理它。
我认为您的网络方法应该write an EventHandler,以便管理方法的完成并处理结果。
答案 2 :(得分:0)
只有在您拥有名称后才能设置name
,这将在您定义为GetUserName
的方法中进行(不是{{1}的一个好名字)虽然处理程序,所以我在下面的例子中重命名了它)
GetNameCompleted