用枚举c#创建具体类的接口



请原谅我的错误,这是我的第一个问题。我希望你能给我一些指导。我试着搜索以前的问题,但我无法准确地说出这个问题。

我试图创建一个简单的Logger与接口类,但我想有接口和Logger类在解决方案中的单独的项目。我正试图把我所有的接口从具体的实现中分离出来。

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

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 enum,如果我试图将两个独立的项目连接在一起,我就会遇到循环依赖问题。

有没有人能给我一些关于如何管理枚举,而利用一个接口的见解?可能是我遗漏了一些很简单的东西。如果这个问题太模糊了,我很抱歉。这一切都是由于我试图实现依赖注入,同时将我的接口分离到自己的项目中。

任何反馈都非常感谢!提前感谢!

你的enum LogSeverity描述了一个契约,所以如果你想把它分成两个程序集,把接口和enum添加到一个程序集,把实现添加到另一个程序集。

界面组装:

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)
    { ... }
}

您应该能够将Enum与接口一起放入项目中。

将接口分离到一个单独的项目中的想法是,它可以在不同的项目中重用,以创建不同的ILogger实现,可以根据需要注入。如果ILogger引用LogSeverity,那么这个接口的潜在实现者将需要访问它-因此将它与接口的另一个具体实现放在一个项目中并没有真正意义

相关内容

  • 没有找到相关文章

最新更新