C#异步肥皂对象处理
问题描述:
有没有办法将处理程序附加到肥皂调用?C#异步肥皂对象处理
例如:
我打电话一排用于验证数据网格中的每一行。这然后调用异步SOAP服务。在异步的返回是有可能知道哪个行我叫它没有来回传递某种类型的id?
感谢
答
如果为每一行做一个调用。您可以将这一行作为用户状态传递。例如使用基于事件的异步方法http://msdn.microsoft.com/en-us/library/ms730059.aspx。
client.AddCompleted += new EventHandler<AddCompletedEventArgs>(AddCallback);
client.AddAsync(value1, value2, row);
和检索回调方法
static void AddCallback(object sender, AddCompletedEventArgs e) { var row = e.UserState as RowType; }
答
如果您使用的是相同的处理,以处理来自不同行的所有调用,那么是的,你不得不这样做。否则,如果你有每行的处理程序,那么你不。
它与处理程序类似,按钮点击。如果对多个按钮使用相同的处理程序,则需要检查sender
对象。
我建议你在HTTP heades中使用一个值来设置ID并返回调用者。从某种意义上说,这不应该在你的Soap消息中,因为服务器不需要知道你的ID。
+1行是更好 – Aliostad 2010-10-12 11:11:29
该用户是否得到状态发送给服务器?即时尝试保持它只有可能的客户端。 – 2010-10-12 11:11:37
UserState停留在客户端。 – RonaldV 2010-10-12 11:36:14