2013-07-24 83 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 

唉,当我执行de 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 
     ~~~~~~~~~~~~~~~ 

任何!帮助将是非常棒的!感谢...我很绝望:S

一切我尽量不工作-.-

谢谢

我做了一些测试,它似乎即使文件Access.vb是无效(使用namejdacosijdfspace替换命名空间)我没有收到任何错误..

... 说真的,任何人?我真的很绝望: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一旦你能够创建类实例,它将会成为一个问题。如果你想这个工作,你必须使用App_Code。 **没有办法让ASP.Net自动编译并在该文件夹之外包含代码** –

+0

我接受它。你可以建立一个代码隐藏关系,但这对你来说也不适用。而且你可以尝试在代码中包含它以供你自己控制。但真的:去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