[英]C# Using Multiple Files in ASP.NET
我有一個文件Tools.cs,其中包含一個工具類。 我使用另一個文件Default.cs作為Default.aspx的代碼背后。 我已經嘗試過以下所有操作,以在默認文件中使用工具文件,但沒有任何效果。 我怎樣才能做到這一點?
using Tools;
using Global.Tools; //Added namespace Global to my tools class
using Global;
編輯:更徹底,這是一些代碼。
//Tools.cs
namespace Global{
public sealed class Tools{
//Tools stuff
}
}
//Default.cs
using System;
using System.Web.UI;
using Global;
namespace Home{
public class Default :Page{
//Page stuff
}
}
我得到錯誤:
說明:編譯服務於此請求所需的資源期間發生錯誤。 請查看以下特定的錯誤詳細信息,並適當地修改您的源代碼。
編譯器錯誤消息:CS0246:找不到類型或名稱空間名稱'Global'(您是否缺少using指令或程序集引用?)
using
指令不適用於文件 ,適用於名稱空間 。
using YourToolsNamespace;
YourToolsNamespace
所在的位置包含您的Tools
類。
編輯 :您還需要在項目參考中包含此內容。 例如,您可以從GAC,另一個項目或特定位置引用您的代碼庫。 右鍵單擊參考,然后在其中找到您的裝配體。
如果您嘗試在Default.aspx中引用它,請編輯您的web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<pages>
<compilation debug="true" targetFramework="4.0" />
<namespaces>
<add namespace="WebApplication1.SubNamespace"/>
</namespaces>
</pages>
</system.web>
</configuration>
您的課程可能如下所示:
namespace WebApplication1.SubNamespace
{
public static class Class1
{
public static string value { get { return "hello world!!"; } }
}
}
這將使其在aspx標記中是可引用的,如下所示:
<form id="form1" runat="server">
<div>
<%= Class1.value %>
</div>
</form>
確保將您的Tools類設置為在Properties-> Build Action中進行編譯。
另外,要使用它,您可能必須執行以下操作:
_Default.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ThisWorks.Fine;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Tools tools = new Tools();
}
}
和
Tools.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ThisWorks.Fine
{
/// <summary>
/// Summary description for Tools
/// </summary>
public class Tools
{
public Tools() { }
//Tools stuff
}
}
確保您的Tools類是公共的。
C#使用名稱空間分隔類。 如果將兩個類都放在同一個名稱空間中,則它們將可以彼此訪問。 否則,請在回答中使用using
聲明,但要指定名稱空間 ,而不是filename 。
//Tools.cs
namespace MyApp.CoreLogic
{
class Tools
{
...
}
}
然后...
//Default.cs
namespace MyApp.FrontEnd
{
using MyApp.CoreLogic
class Default : Page
{
...
}
}
好的,因為您在Notepad ++中進行開發,是否要使用csc進行編譯?
編譯的語法應類似於:
csc /t:library /out:MyCodeLibrary.dll Tools.cs Default.cs
要查看csc的選項,請查看: http : //msdn.microsoft.com/zh-cn/library/ms379563%28v=VS.80%29.aspx
請注意,您可以免費下載Visual Studio Express,它將使您的工作效率更高,並減少此類情況下的混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.