2013-09-26 122 views
0

我想添加一個預編譯的DLL到我的webform項目。該DLL是一個預編譯的用戶控件(不是服務器控件)。當我在該項目的webform開發過程中測試用戶控件時,一切正常。然後,我刪除了Web表單,以便只保留用戶控件並將其發佈到文件中。接下來,在我想要使用它的項目中,我添加了對dll的引用,並確保在使用項目的bin文件夾中存在它的副本。asp.net添加自定義控件頁

我不知道,但我想我的問題是理解在web.config中(或註冊標記)什麼去,這是我的註冊標籤:

<add assembly="CustomStatusNavigator" namespace="CustomStatusNavigator" tagPrefix="Custom" /> 

.. 。其中「CustomStatusNavigator是用戶控制項目的名稱,而且包含我的.cs代碼的命名空間。

我得到的錯誤是

The type or namespace name 'CustomStatusNavigator' does not exist in the namespace 'CustomStatusNavigator' (are you missing an assembly reference?) 

我做得BLA完全錯誤?自定義USER控件可以轉換爲dll並像自定義控件一樣使用,這只是個神話嗎?感謝任何幫助/指示,良好的聯繫。我已經用google搜索了這個。

回答

1

請參閱自定義控件不同,用戶控件不同。

當我們創建用戶控件時,範圍僅限於該應用程序。假設我們正在創建一個名爲'Test.ascx'的用戶控件。它可以在整個應用程序中使用,只需在頁面指令下注冊即可。記住它不會創建任何.dll文件,它只能是.ascx。

在自定義控件的情況下,您可以藉助可用的服務器控件創建自己的控件。你可以編譯它們,在這一點上,dll文件將會生成相同的文件。

此dll文件也可以在其他項目中使用,但爲此目的,您必須將其引用添加到任何新項目。

添加引用之後,您可以在工具下看到它,並且只要您想使用它就可以簡單地拖放它。

+0

謝謝siddesh。我和一位程序員討論這個問題,並且理解用戶控件必須在要添加到的項目中的某個位置有一個ascx文件,即使它是預編譯的並且引用了dll。決定去服務器控制路線。這是一個更陡峭的學習曲線,但它進展得非常好,當然值得努力。感謝幫助。 – deadEddie