可公开访问的功能

时间:2011-06-02 21:49:35

标签: .net asp.net vb.net

我正在创建一个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")

有可能吗?

3 个答案:

答案 0 :(得分:1)

这是面向对象编程的基本思想。 每个函数,每一段代码都属于某个地方,需要进行组织。一种方法是通过使用对象(类)。如果你有一个函数,你想要预先形成,整理函数正在做什么和使用它,并将它放在适当的位置。

我还建议不要实现HttpHandler。在Asp.Net框架中,几乎任何你想要的Web应用程序都可以通过某种方式处理。我参加过很多网络项目,每次看到有人试图写一个,他们总是另一个(通常是开箱即用)的方式。

答案 1 :(得分:0)

您可以将“SayHello”转换为extension method,并将处理程序的类型作为参数类型,但您可能仍需要指定Me.SayHello()

答案 2 :(得分:0)

Imports PublicFunctions

有帮助吗?

编辑 - 由于这不起作用,尝试将PublicFunctions转换为类,使其成员共享(这样它们可以在没有类的实例的情况下工作,相当于c#静态),以及做导入。这对我有用,虽然我不在ASP环境中。