[英]Asp.Net and namespaces splitted over multiple .cs files
在我正在構建的站點中,我在wwwroot的子目錄下有2個.cs文件。 所述文件包含一堆實用程序函數,並且屬於同一名稱空間(即:名稱空間myUtils)
作為同一命名空間中這2個文件的內容,我希望能夠彼此使用某些類,反之亦然,就像所有代碼都在一個大文件中一樣,但顯然不起作用
示例代碼:
文件1:
using System;
using System.Collections;
namespace myincludes
{
public static class myConfig
{
public static String dbaddress = "127.0.0.1";
}
}
文件2:
using System;
using System.Collections;
namespace myincludes
{
public static class myUtil
{
public static void doStuff()
{
String test = myConfig.dbaddress;
}
}
}
aspx頁面:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Assembly src="./includes/file1.cs" %>
<%@ Assembly src="./includes/file2.cs" %>
<%%>
<html>
<head></head>
<body>hi</body>
</html>
我收到一個編譯錯誤,說
Compiler Error Message: CS0103: The name 'myConfig' does not exist in the current context
基本上沒有關於Assembly src指令的用法的文檔。 似乎常見的方法是生成二進制DLL,但我寧願不...
public static class myUtil
{
public static string test { get{return myConfig.dbaddress;}}
public static string SomeMethod()
{
return myConfig.dbaddress;
}
}
您必須從有效位置調用代碼。 現在,您的呼叫在任何方法或屬性之外。 它不在有效位置。 在上面的示例中,我將其包裝在屬性和方法中。
您的課程應該按預期工作,沒有任何問題。 我從您的Assembly指令中假設您要在ASPX標記中使用myConfig
? 為此,只需導入名稱空間即可,而不要使用Assembly指令:
<%@ Import Namespace="myincludes" %>
然后,您可以在標記中使用myConfig
:
dbaddress is: <%=myConfig.dbaddress %>
聽起來您可能正在使用網站項目,而不是預先編譯的Web應用程序。 如果僅將.cs文件轉儲到隨機目錄中,則ASP.NET將不會找到它,除非您明確引用它*。
嘗試將文件放在Web根目錄下的特殊目錄App_Code
中。 放置在那里的源文件將被自動編譯。 有關其他說明,請參見此MSDN頁面 。
*:例如,ASP.NET Web窗體頁面通常以@Page
指令開頭,其中CodeFile
屬性指向源文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.