在 任何Application_BeginRequest
Global.asax
或System.Web.Services.WebService
事件期间,是否有可靠的方法来使用反射实例化或检查预期的Web服务方法?我需要确定所调用的Web服务的属性值是什么。
我非常确定HttpContext.Current.Request
中有必要的信息可以执行此操作,但我对反射语法不够熟悉。
GLOBAL ASAX
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
Dim InboundRequest As HttpRequest = HttpContext.Current.Request
'ASSUMING REQUEST IS FOR DemoService.asmx/ExampleMethod'
'NEED CODE HERE TO DETERMINE '
'WHAT THE VALUE OF THE "ScriptMethod" ATTRIBUTE IS'
End Sub
WEB服务
<ToolboxItem(False), ScriptService()> _
Public Class DemoService
Inherits System.Web.Services.WebService
<WebMethod(), ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Public Function ExampleMethod()
Return "Hello World"
End Function
End Class
欢迎VB.Net或C#答案,我可以转换为必要的
答案 0 :(得分:0)
你可以,但我认为在PreRequestHandlerExecute
事件中做任何你打算做的事情会更好,因为你已经有了asp.net创建的web服务对象实例。请记住,所有类型的处理程序(页面,Web服务,通用等)都会触发此事件。
如果你想自己走这条路线,那么你只需要做Activator.CreateInstance(type),其中type是web服务类型。