2013-07-24 3 views
1

У меня проблема, я использую NotePad ++ для некоторых неясных причин для кода в Vb.Net Asp.net, и на моем сервере у меня есть папка, которую я хотел бы добавить .vb класс, а затем в aspx-файле просто импортируйте пространство имен и создайте экземпляр этого класса ... Должно быть легко, нет?vb.net ссылки на пространство имен

Ну, вот моя архитектура:

У меня есть имя default.aspx файл, который содержит:

<%@ Import Namespace="Geo" %> 
<% 
    Dim a As Access = New Access() 
    Response.Write(a.hasAccess()) 
%> 

и имя класса доступа в подпапке aspxcomponents

Здесь вы класс доступа:

Namespace Geo 

    Public Class Access 
     Function hasAccess() As Boolean 
      Return True 
     End Function 
    End Class 

End Namespace 

И хорошо, когда я выполняю fault.aspx Я получаю следующую ошибку:

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: BC30002: Type 'Access' is not defined. 

Source Error: 


Line 1: <%@ Import Namespace="Geo" %> 
Line 2: <% 
Line 3: Dim a As Access = New Access() 
Line 4: Response.Write(a.hasAccess()) 
Line 5: %> 


Source File: C:\...\default.aspx Line: 3 


Show Detailed Compiler Output: 


C:\Windows\SysWOW64\inetsrv> "C:\Windows\Microsoft.NET\Framework\v2.0.50727\vbc.exe" /t:library /utf8output /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\17edf889\308e2904_d4a7cd01\obout_SuperForm.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\90a90acc\06f1d546_d4a7cd01\obout_ListBox.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\16815892\0259b030_d4a7cd01\AjaxControlToolkit.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\db59a808\e25edd3b_d4a7cd01\obout_Flyout2_NET.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\1b343ee7\26831f32_d4a7cd01\obout_AJAXPage.DLL" /R:"C:\Windows\assembly\GAC_MSIL\System.WorkflowServices\3.5.0.0__31bf3856ad364e35\System.WorkflowServices.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.IdentityModel\3.0.0.0__b77a5c561934e089\System.IdentityModel.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\04af17f9\ca3b7804_d4a7cd01\obout_Tree_DB_Net.DLL" /R:"C:\Windows\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\2f6922c7\ba568500_d4a7cd01\obout_Show_Net.DLL" /R:"C:\Windows\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"C:\Windows\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\67fcad05\b8cabd41_d4a7cd01\obout_ImageZoom_NET.DLL" /R:"C:\Windows\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\e0bf0dd3\2ae92003_d4a7cd01\obout_Splitter2_Net.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\923ae5b1\e6b6b705_d4a7cd01\obout_Window_NET.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\284fee82\00968846_25e3c701\obout_ASPTreeView_2_NET.DLL" /R:"C:\Windows\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\d8821591\e82de323_ab03ce01\Server.DLL" /R:"C:\Windows\assembly\GAC_MSIL\System.ServiceModel.Web\3.5.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\3047a6af\a0af073a_d4a7cd01\obout_ComboBox.DLL" /R:"C:\Windows\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\766a113f\729f1038_d4a7cd01\obout_Calendar2_Net.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\49cf6573\9c28c516_d4a7cd01\Microsoft.Vbe.Interop.DLL" /R:"C:\Windows\assembly\GAC_MSIL\System.Runtime.Serialization\3.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\3e1c6afb\ac61a245_d4a7cd01\obout_Interface.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\419549c8\ce7cf703_d4a7cd01\obout_TextMenu.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\4e2fd5b6\be9cf743_d4a7cd01\obout_Grid_NET.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\7c45df4e\1c65fb14_d4a7cd01\Microsoft.Office.Interop.Word.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\161a8730\ea77face_d5a7cd01\obout_FileUpload.DLL" /R:"C:\Windows\assembly\GAC_MSIL\System.ServiceModel\3.0.0.0__b77a5c561934e089\System.ServiceModel.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\b94efe06\e8d6b43b_d4a7cd01\obout_EasyMenu_Pro.DLL" /R:"C:\Windows\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\526f4d83\f431a930_d4a7cd01\Obout.Ajax.UI.DLL" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\assembly\dl3\7043b70c\48142501_d4a7cd01\obout_SlideMenu3_Pro_NET.DLL" /out:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\App_Web_9j7lk7lp.dll" /D:DEBUG=1 /debug+ /define:_MYTYPE=\"Web\" /imports:Microsoft.VisualBasic,System,System.Collections,System.Collections.Specialized,System.Configuration,System.Text,System.Text.RegularExpressions,System.Web,System.Web.Caching,System.Web.SessionState,System.Web.Security,System.Web.Profile,System.Web.UI,System.Web.UI.WebControls,System.Web.UI.WebControls.WebParts,System.Web.UI.HtmlControls "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\App_Web_9j7lk7lp.0.vb" "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\App_Web_9j7lk7lp.1.vb" 


Microsoft (R) Visual Basic Compiler version 8.0.50727.5420 
for Microsoft (R) .NET Framework version 2.0.50727.5472 
Copyright (c) Microsoft Corporation. All rights reserved. 

C:\...\default.aspx(3) : error BC30002: Type 'Access' is not defined. 

Dim a As Access = New Access() 
     ~~~~~~    
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\84e1764c\a7c5af94\App_Web_9j7lk7lp.0.vb(15) : warning BC40056: Namespace or type specified in the Imports 'Geo' doesn't contain any public member or cannot be found. Make sure the namespace or the type is defined and contains at least one public member. Make sure the imported element name doesn't use any aliases. 

Imports Geo 
     ~~~~~~~~~~~~~~~ 

ANY! помощь была бы БОЛЬШОЙ! оценили ... Я довольно отчаянным: S

Все, что я стараюсь не работать -.-

Спасибо

Я сделал некоторые испытания и, кажется, даже если файл Access.vb является недействительно (заменено пространство имен с именемjdacosijdfspace) У меня нет ошибок.

... Серьезно, кто-нибудь? Я действительно в отчаянии: S

ответ

2

Две проблемы.

Во-первых, класс является общедоступным, но функция не изменена. Это означает, что функция является частной (или, возможно, защищенной/дружеской, в зависимости от контекста). Вам нужно это:

Namespace Geo 

    Public Class Access 
     Public Function hasAccess() As Boolean 
      Return True 
     End Function 
    End Class 

End Namespace 

Во-вторых, вы импортировали пространство имен, но не сказать, рамки, где код живет для этого пространства имен. Попробуйте поместить файл .vb в специальный App_Code folder. Или вы можете создать файл в * .dll как часть библиотеки классов, а затем поместить его в специальную папку/bin.

+0

Папка App_Code для меня не вариант, потому что каждая модификация, которую я делаю на ней, затрагивает всех разработчиков, и мы работаем над тем же отдаленным сервер ... Что касается функции, она никогда не сможет создать экземпляр класса, поэтому я действительно не верю, что это проблема. Спасибо в любом случае ... – Hipny

+0

@Hipny It * будет * проблемой, если вы сможете создать экземпляр класса. И если вы хотите, чтобы это сработало, вам придется использовать App_Code. ** Нет способа получить ASP.Net для автоматической компиляции и включения кода за пределами этой папки ** –

+0

Я беру это обратно. Вы можете установить связь с кодом, но это тоже не поможет вам. И вы можете попробовать включить это в код для своего собственного контроля. Но на самом деле: go app_code –

0

Вам необходимо изменить свой оператор импорта на Imports.

Правильный синтаксис:

Imports Geo 

В качестве альтернативы, вы можете удалить заявление импорта и полностью определить класс доступа:

Dim a As Geo.Access = New Geo.Access() 
+0

Невозможно, код default.asp добавляется в подкласс класса с помощью IIS, поэтому Импорт в подпрограмму на самом деле не работает: S – Hipny

+0

Просто добавил альтернативный подход к решению проблемы. –

+0

Пробовал это тысячу раз: ошибка BC30002: Тип 'Geo.Access' не определен. – Hipny

Смежные вопросы