使用反射来调用ASP.NET Web服务

Dav*_*ard 7 c# asp.net reflection web-services

假设我有一个ASMX Web服务MyService.该服务有一个方法MyMethod.我可以在服务器端执行MyMethod,如下所示:

MyService service = new MyService();
service.MyMethod();
Run Code Online (Sandbox Code Playgroud)

我需要做类似的事情,服务和方法直到运行时才知道.

我假设反思是解决这个问题的方法.不幸的是,我很难让它发挥作用.当我执行此代码时:

Type.GetType("MyService", true);
Run Code Online (Sandbox Code Playgroud)

它抛出此错误:

无法从程序集"App_Web__ktsp_r0,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null"加载"MyService"类型.

任何指导将不胜感激.

Kib*_*bee 2

我不确定这是否是最好的方法。对我来说,最明显的方法是发出 HTTP 请求,并使用实际的 HTTP GET 或 POST 调用 Web 服务。使用您的方法,我不完全确定您将如何设置发送到网络服务的数据。我在 VB.Net 中添加了一些示例代码

Dim HTTPRequest As HttpWebRequest
Dim HTTPResponse As HttpWebResponse
Dim ResponseReader As StreamReader
Dim URL AS String
Dim ResponseText As String

URL = "http://www.example.com/MyWebSerivce/MyMethod?arg1=A&arg2=B"

HTTPRequest = HttpWebRequest.Create(URL)
HTTPRequest.Method = "GET"

HTTPResponse = HTTPRequest.GetResponse()

ResponseReader = New StreamReader(HTTPResponse.GetResponseStream())
ResponseText = ResponseReader.ReadToEnd()
Run Code Online (Sandbox Code Playgroud)