繁体   English   中英

可公开访问的功能

[英]Publicly accessible functions

我正在创建一个 httphandler。 文件类型可能无关紧要。

我的.ashx 文件:

<%@ webhandler class="MyHandler" %>
<%@ assembly src="Functions.vb" %>
<%@ assembly src="Classes.vb" %>

Public Class MyHandler
  ...

End Class

我的 Functions.vb 文件:

Module PublicFunctions

Function SayHello(greeting As String)
  ...

End Function
...

End Module

我的 Classes.vb 文件:

Imports This
Imports That
Imports TheOther
...

Enum AnEnum
End Enum
...

Class AClass
End Class
...

在我的类文件中,我希望能够使用 Functions.vb 中的函数,而无需将它们包装在 class 中,因此我可以像这样直接调用它们

SayHello("Hello World")

代替

MyPublicFunctions.SayHello("Hello World")

可能吗?

这是 object 面向编程的基本思想。 每一个 function,每一位代码都属于某个地方,需要组织起来。 一种方法是通过使用对象(类)。 如果你有一个 function 你想预制,简明 function 正在做什么以及正在使用它,并将其放置在适当的位置。

我还建议不要实现 HttpHandler。 在 Asp.Net 框架中,几乎所有您希望 web 应用程序执行的操作都已由某个地方处理。 我参与了很多 web 项目,每次我看到有人试图写一个,他们总是用另一种(通常是开箱即用的)方式来做。

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

Imports PublicFunctions

有帮助吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM