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属性。然后,我们可以根据需要创建页面。