0

我想在我的页面类中实现泛型,例如:

Public Class MyClass(Of TheClass)
Inherits System.Web.UI.Page

但要使其工作,我需要能够实例化类(使用正确的通用类类型)并加载页面,而不是常规的 Response.Redirect。有没有办法做到这一点 ?

4

2 回答 2

2

我不确定完全理解你想要做什么。如果您想要一个通用页面,您可以使用通用 BasePage 并将您的通用方法放入该 BasePage:

Partial Public Class MyPage
    Inherits MyGenericBasePage(Of MyType)

End Class

Public Class MyGenericBasePage(Of T As New)
    Inherits System.Web.UI.Page

    Public Function MyGenericMethod() As T
        Return New T()
    End Function

End Class

Public Class MyType

End Class
于 2008-09-22T03:48:44.717 回答
0

说从泛型类型派生类型的答案是一个很好的答案。但是,如果您的解决方案涉及基于在运行时确定的类型抓取页面,那么您应该能够处理当前 HttpApplication 上的 PreRequestHandlerExecute 事件。

这个事件在请求被转发到处理程序之前被调用,所以我相信你可以将你的页面注入到 HttpContext.Current.Handler 属性中。然后,您可以根据需要创建页面。

于 2008-09-22T04:10:50.513 回答