无法从另一个命名空间访问公共静态类

时间:2013-11-08 04:18:29

标签: c#

namespace PROJ.Service {
   public static class ExceptionDatesUpdateService {
        public static ExceptionDatesUpdateService()
        {
        }

        public static bool IsServiceRunning() {
            return _updateThread != null && _updateThread.IsAlive;
        }
   }
}

当我尝试使用上面的静态类时,它表示它无法访问。为什么?该参考文献存在。

using PROJ.Service;
namespace PROJ.admin {
  public void ProcessRequest(HttpContext context) {
    bool ch = ExceptionDatesUpdateService.IsServiceRunning();
  }
}

谢谢大家。找到了问题。当我解决其他错误并编译它。它消失了。我是c#的新手,抱歉傻瓜问题。 :)

4 个答案:

答案 0 :(得分:1)

假设您添加了适当的项目引用,我看到的一个问题是静态类型初始值设定项不能具有访问修饰符。试试这个:

public static class ExceptionDatesUpdateService {
    static ExceptionDatesUpdateService()
    {
    }
}

当然,如果初始化程序中没有任何内容,您可以完全删除它。

答案 1 :(得分:0)

这通常是由项目属性中设置的不同.N​​ET框架版本引起的。例如,一个项目可能是.NET 3.5,而您正在尝试引用.NET 4.0项目。

它也可能是由类似的x64与x86不匹配引起的。

通常,引用本身旁边会有一个警告图标。

答案 2 :(得分:0)

检查两个项目的项目属性中的Target Framework是否相同。

答案 3 :(得分:0)

namespace PROJ.admin 
{
    public static class NewClass
    {
        public void ProcessRequest(HttpContext context)
        {
            bool ch = ExceptionDatesUpdateService.IsServiceRunning();
        }
    }
}

尝试这是有效的