簡體   English   中英

C#在ASP.NET中使用多個文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM