请原谅任何错误,这是我的第一个问题。我真的很感谢这里的一些指导。我尝试搜索以前的问题,但是我无法完全正确地表达该问​​题。

我正在尝试使用接口类创建一个简单的Logger,但是我想在解决方案中的单独项目中使用该接口和Logger类。我试图将所有接口与具体实现分开。

但是,我创建的Logger类包含一个枚举:

public class Logger : ILogger
{
    public enum LogSeverity
    {
        None = 0,
        Verbose = 1,
        Information = 2,
        Warning = 3,
        Error = 4,
        Critical = 5
    }

    public void Log(string message)
    { ... }

    public void Log(string message, LogSeverity severity)
    { ... }
}


然后,我有一个接口(在单独的项目中)用于ILogger:

public interface ILogger
{
    void Log(string message);

    void Log(string message, LogSeverity severity);
}


由于接口不了解LogSeverity枚举,因此我遇到了问题,如果尝试将两个单独的项目连接在一起,则会遇到循环依赖问题。

谁能给我一些有关在使用接口时如何管理枚举的见解?这可能是我很想念的非常简单的事情。抱歉,这个问题太模糊了。这一切都是在我尝试实现依赖注入时实现的,同时将接口分为自己的项目。

任何反馈,不胜感激!提前致谢!

最佳答案

枚举LogSeverity描述了一个合同,因此,如果要将其分成两个程序集,则将接口和枚举添加到一个程序集,并将实现添加到另一个程序集。

接口组装:

public enum LogSeverity
{
    // enum items
}

public interface ILogger
{
    void Log(string message);

    void Log(string message, LogSeverity severity);
}


实施程序集:

public class Logger : ILogger
{

    public void Log(string message)
    { ... }

    public void Log(string message, LogSeverity severity)
    { ... }
}

10-06 13:38
查看更多