繁体   English   中英

由于 C# 中的保护级别而无法访问

[英]Inaccessible due to protection level in C#

我有包含抽象LoggerFile类的引用object 我正在尝试访问它。 但由于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);
}
}

这是在创建的解决方案中工作的。 但是使用引用对象它显示错误。 请找图。

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

public class LoggerFile

顺便说一句,为什么它甚至是Abstract 如果你只有一些静态成员,也许你应该把它变成静态本身。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM