[英].NET Web Services - managing web requests
我有一个.NET WeBService项目,另一个项目对此有一个引用。 Visual Studio使用Web服务的所有方法生成一个代理类(SoapHttpClient)。 我使用WebService的项目是.NET CF移动应用程序。 这意味着Internet访问和WebService并非始终可用。 我需要做的是确保从移动设备到Web服务的所有请求最终都能到达它。 我想通过将对WebService的所有请求排队在一个工作线程中,该线程连续执行Web请求直到执行成功。 问题在于生成的代理类具有所有已命名的Web方法。 没有一种机制可以从我可以存储以供以后使用的方法中“提取”通用的“ Web请求对象”。 我必须使用其名称和参数显式调用Web方法。 这编译了我的代码。 我的问题是-.NET Web服务中是否有一种机制可以将Web请求“提取”为对象,以后再使用呢?
问候
多米尼克
据我所知,.NET生成的代理不会提供所需的Web请求对象。 但是您可以自己创建一个简单的代理来存储请求信息,然后再使用.NET代理(或SoapHttpClientProtocol类)发出Web请求。 下面是示例模板代码:
public class MyRequest
{
public MyRequest(string methodName, params object[] parameters)
{
this.MethodName = methodName;
this.Parameters = parameters;
}
public string MethodName { get; set; }
public object[] Parameters { get; set; }
public object[] Response {get; set;}
}
public class MyProxy : dotNetGeneratedServiceProxy
{
List<MyRequest> Requests { get; set; }
public void QueueMethod1(int param1, string param2)
{
Requests.Add(new MyRequest("Method1", param1, param2));
}
public void QueueMethod2(string param1)
{
Requests.Add(new MyRequest("Method2", param1));
}
public void RunAllRequests()
{
foreach (var request in Requests)
{
var result = this.Invoke(request.MethodName, request.Parameters);
}
}
}
希望这会给您一个想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.