ASP.NET页面上的泛型类

时间:2020-03-06 14:31:20  来源:igfitidea点击:

我想在我的Page类中实现泛型:

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

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

解决方案

我不是ASP.NET专家,但我不知道如何。我们打算如何使用该课程?

我不确定我们想做什么。
如果我们想要通用页面之类的东西,则可以使用通用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

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

在将请求转发到Handler之前,将调用此事件,因此我相信我们可以将页面注入HttpContext.Current.Handler属性。然后,我们可以根据需要创建页面。