使用静态类

时间:2015-08-28 09:18:39

标签: c# reference static

我有一个记录器,我已经注入静态类。

我希望能在所有app层中调用此类的(静态)方法。

在这里,我的业务层(可移植类),我使用普通类与静态方法,但我不能调用我的Logger,名称LOGGER在当前上下文中不存在。

我有一个对Logger项目的引用,但引用上有一个警告图标。参考的属性没有任何内容,但我确实通过单击Project然后单击包含记录器的项目来添加引用。

致电记录:

public class AnomalyBL
    {
        private static Container<IList<Anomaly>> MyMethod()
        {
            try
            {
                something
            }
            catch (Exception ex)
            {
                string errorMsg = string.Format("text ({0})", ex.Message);
                Logger.MyLogger.LogError(ex, errorMsg);
            }
            return container;
        }
}

记录器:

namespace Logger{
public static class MyLogger
    {

        public static bool LogError(Exception ex, string message = "")
        {
            try
            {
                GetLogger().Log(LogLevel.Error, ex, message);
            }
            catch (Exception exception)
            {
                return false;
            }
            return true;
        }
}
}

提前致谢

1 个答案:

答案 0 :(得分:2)

有几个原因导致参考可能无效并且具有该警告图标: 首先尝试删除引用,然后再次添加:假设您有项目A应该引用包含Logger的项目B.在解决方案资源管理器中,在项目A中右键单击引用 - &gt;添加参考 - &gt;解决方案 - &gt; B项目

如果新引用仍显示警告,则应该出现以下问题: 项目B中的.net版本高于A, 或者平台不匹配,例如项目B的目标.Net框架和A是一个silverlight项目。 在错误窗口中,单击警告图标以查看警告,应该有一个解释无法从A引用项目B的原因