我正在创建一个httphandler。文件类型可能无关紧要。
我的.ashx文件:
<%@ webhandler class="MyHandler" %>
<%@ assembly src="Functions.vb" %>
<%@ assembly src="Classes.vb" %>
Public Class MyHandler
...
End Class
My Functions.vb文件:
Module PublicFunctions
Function SayHello(greeting As String)
...
End Function
...
End Module
My Classes.vb文件:
Imports This
Imports That
Imports TheOther
...
Enum AnEnum
End Enum
...
Class AClass
End Class
...
在我的类文件中,我希望能够使用Functions.vb中的函数而不将它们包装在类中,这样我就可以直接调用它们,如
SayHello("Hello World")
而不是
MyPublicFunctions.SayHello("Hello World")
有可能吗?
答案 0 :(得分:1)
这是面向对象编程的基本思想。 每个函数,每一段代码都属于某个地方,需要进行组织。一种方法是通过使用对象(类)。如果你有一个函数,你想要预先形成,整理函数正在做什么和使用它,并将它放在适当的位置。
我还建议不要实现HttpHandler。在Asp.Net框架中,几乎任何你想要的Web应用程序都可以通过某种方式处理。我参加过很多网络项目,每次看到有人试图写一个,他们总是另一个(通常是开箱即用)的方式。
答案 1 :(得分:0)
您可以将“SayHello”转换为extension method,并将处理程序的类型作为参数类型,但您可能仍需要指定Me.SayHello()
。
答案 2 :(得分:0)
Imports PublicFunctions
有帮助吗?
编辑 - 由于这不起作用,尝试将PublicFunctions转换为类,使其成员共享(这样它们可以在没有类的实例的情况下工作,相当于c#静态),以及做导入。这对我有用,虽然我不在ASP环境中。