【问题标题】:Inaccessible due to protection level in C#由于 C# 中的保护级别而无法访问
【发布时间】:2019-12-06 14:56:47
【问题描述】:

我有引用 object,其中包含抽象 LoggerFile 类。我正在尝试访问它。但由于protection 级别,它显示无法访问。请任何人帮助我理解它。

abstract class LoggerFile
{
     private static String logFile = null;

        /// <summary>
        ///     Logfile Property
        /// </summary>
        public static string LogFile { get => logFile; set => logFile = value; }

        /// <summary>
        ///     Set logFile
        /// </summary>
        /// <param name="logFile">The absolute path to file for writting logs</param>
        public static void SetLogFile(String logFile)
        {
            LogFile = LogFile ?? logFile;
            if (!File.Exists(LogFile))
            {
                File.Create(LogFile).Close();
            }
            }
}
}

我在另一个班级里这样称呼它。

using DriverAutomation.Loggin[enter image description here][1]g;
    public class Devcon
    {
        private static Devcon devcon = null;

        private readonly String devconEXE;
    private readonly String devconPath;
    private readonly String devconExeName;
    private readonly Logger logger;

    /// <summary>
    ///     DevconStatus Property for devcon status outcome backup
    /// </summary>
    public readonly String devconStatus;

    /// <summary>
    ///     Initializes the Devcon Singleton Instance
    /// </summary>
    private Devcon()
    {
        devcon = this;
        logger = Logger.GetLogger(GetType().Name, LoggerFile.LogFile);
        devconExeName = "devcon.exe";
        devconEXE = Path.Combine(Directory.GetCurrentDirectory(), devconExeName);
}
}

这是在创建的解决方案中工作的。但是使用参考对象却显示错误。请找到图片。

【问题讨论】:

  • 错误显示在哪一行?
  • Exceptions.InvalidArgumentException: 参数 callerClassName 不能为 null 或为空或仅包含空白字符。
  • 由于保护级别,无法访问记录器文件
  • 尝试将其设为 "public abstract class LoggerFile" ,这可能会有所帮助。

标签: c#


【解决方案1】:

将您的课程声明为公开且非抽象的,我认为它会解决您的问题。

public class LoggerFile

对了,为什么还要Abstract。如果你只有一些静态成员,也许你应该把它变成静态本身。

尽管在大多数记录器实现中,遵循单例模式是有意义的(少数情况之一)

【讨论】:

  • 即使我尝试将其声明为公共类。但仍然显示无法访问。
  • 请删除摘要,然后重试。
  • 删除 abstract 关键字后不会抛出任何错误。谢谢@Athanasios Kataras。
猜你喜欢
  • 2015-09-26
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 2011-04-02
相关资源
最近更新 更多