我已经编写了这个访问Web Service x上的Delete方法的代码,我将为每个方法创建包装器,但是我可能会非常简单地使用阻塞器。
我的代码包含三种方法:
这是我目前的代码:
public void Delete(string[] Identifiers, string ObjectType)
{
service.deleteAsync(ObjectType, Identifiers);
service.deleteCompleted += new deleteCompletedEventHandler(service_deleteCompleted);
}
void service_deleteCompleted(object sender, deleteCompletedEventArgs e)
{
StoreResults(e.Result);
if (resultsTable.Rows.Count == totalRecords)
{
CSVFile myFile = new CSVFile(",", true);
myFile.Save(resultsTable, outputPath);
Console.WriteLine("Tasks completed");
}
}
public void StoreResults(DeleteResult[] ResultSet)
{
if (resultsTable.Columns.Count < 1)
{
resultsTable.Columns.Add("ID");
resultsTable.Columns.Add("Errors");
resultsTable.Columns.Add("Success");
}
foreach (DeleteResult r in ResultSet)
{
StringBuilder errors = new StringBuilder();
object[] newRow = new object[3];
newRow[0] = r.id;
if (r.errors != null)
{
newRow[1] = errors[0].ToString();
}
else
newRow[1] = "No Errors to Report";
newRow[2] = r.success.ToString();
resultsTable.Rows.Add(newRow);
}
}
对web服务的限制是我每次调用只能传递50个ID,因此我有一些后台代码来管理源数据的分块,我现在需要实现的是将所有这些结果存储在数据表中把它传回去。
答案 0 :(得分:2)
您必须先订阅:
public void Delete(string[] Identifiers, string ObjectType)
{
service.deleteCompleted += service_deleteCompleted;
service.deleteAsync(ObjectType, Identifiers);
}