在静态类C#ASP.NET Web窗体中调用静态方法

时间:2012-01-24 22:08:42

标签: c# asp.net webforms

我在App_Code文件夹中放置了一个静态类TestClass。该类包含一个静态方法TestMethod。从Default.aspx.cs通过Button_Click方法,我试图调用TestMethod。 - test = TestClass.TestMethod()。 这会产生错误:由于其保护级别,“TestClass”无法访问。

感觉静态类和_Default类应放在一个公共命名空间中,但这会“排除”Default.aspx控件引用。

我做错了什么?

5 个答案:

答案 0 :(得分:3)

您需要将TestClass声明为公开:

public static class TestClass
{
    public static SomeType TestMethod()
    {
    }
}

对于类型,默认可见性为internal,对于类型定义的成员,默认可见性为privateApp_Code文件夹被编译到自己的程序集中,与编译后台代码时创建的程序集不同。 internal类型不能在程序集之间共享(在这种情况下不是100%为真,而是真实的),因此您遇到此问题的原因。

答案 1 :(得分:1)

尝试将其设为公开静态。

public class TestClass{
   public static TestMethod(){}

}

答案 2 :(得分:1)

确保TestClass是公开的:

public class TestClass
{
}

向Visual Studio添加类时的默认设置是省略“public”。

答案 3 :(得分:1)

确保您的方法原型至少具有“内部”范围。

答案 4 :(得分:0)

仅仅因为您的类是静态的并不意味着所有代码/程序集都可以访问它。确保您的静态类具有可由Web表单访问的访问修饰符(即公共)。