我有這樣它加載從.ascx文件控制代碼,調用控制的一些方法,然後呈現它:只有如何引用用戶控件的「強」型
Option Explicit Off
Sub renderMyControl(p As Page)
Dim ctrl as Object = p.LoadControl("path/to/myControl.ascx")
' ... do stuff with ctrl ...
ctrl.DoThing1()
' ...
ctrl.RenderControl(New HtmlTextWriter(p.Response.Out))
End Sub
此代碼因爲Explicit
已關閉。我想使用CType
將控件轉換爲其「強類型」(並擺脫Option Explicit Off
),但我不知道如何添加對該類型的引用。我怎樣才能做到這一點?
所以,你問如何找出什麼類型' 「路徑/到/ myControl.ascx」'是什麼?你不是作者嗎? System.Reflection想到。 – Jodrell 2011-04-28 12:21:30
@Jodrell,我是作者......我不能使用反射,因爲我想讓編譯器知道類型,所以它可以檢查用戶控件的方法和屬性名稱,並且可以關閉Option Explicit。事實上,它只是在運行時在編譯時沒有進行檢查。 – JoelFan 2011-04-28 12:24:35
因此,添加一個對包含名爲myControl的Web用戶控件的程序集的引用,這是不可能的?該項目是否在相同的解決方案?在VB中,它們列在項目屬性下,而不是在解決方案資源管理器中,但仍然可以在項目的上下文菜單中找到該選項。我錯過了這一點嗎? – Jodrell 2011-04-28 12:32:40