[英]Invoke static method in static class C# ASP.NET Web Forms
我在App_Code文件夾中放置了一個靜態類TestClass。 該類包含一個靜態方法TestMethod。 通過Button_Click方法從Default.aspx.cs中,我嘗試調用TestMethod。 -測試= TestClass.TestMethod()。 這會產生錯誤:由於其保護級別,無法訪問“ TestClass”。
感覺像應該將靜態類和_Default類放置在公共名稱空間中,但這將“排除” Default.aspx控件引用。
我究竟做錯了什么?
您需要將TestClass
聲明為public:
public static class TestClass
{
public static SomeType TestMethod()
{
}
}
默認可見性對於類型是internal
對於類型定義的成員是private
的。 App_Code
文件夾將被編譯到其自己的程序集中,這與編譯后台代碼時創建的程序集不同。 internal
類型不能在程序集之間共享(這不是100%正確,但在這種情況下為true),因此為什么會出現此問題。
嘗試將其設為公共靜態。
public class TestClass{
public static TestMethod(){}
}
確保TestClass是公共的:
public class TestClass
{
}
將類添加到Visual Studio時的默認設置是忽略“ public”。
確保方法原型上至少具有“內部”作用域。
僅僅因為您的類是靜態的並不意味着它可以被所有代碼/程序集訪問。 確保您的靜態類具有可通過Web表單訪問的訪問修飾符(即public)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.