请原谅任何错误,这是我的第一个问题。我真的很感谢这里的一些指导。我尝试搜索以前的问题,但是我无法完全正确地表达该问题。
我正在尝试使用接口类创建一个简单的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)
{ ... }
}