我正试图在C#Libraries中共享相互引用的公共Log类。问题是我对选择哪个方向感到困惑。
示例C#日志类代码
namespace MyLogger.Log
{
public class MyLogger
{
public void Error(string message)
{
var eventArgs = new LogGeneratedEventArgs();
eventArgs.Message = message;
eventArgs.Type = LogType.Error;
LogGenerated?.Invoke(this, eventArgs);
}
public void Info(string message)
{
var eventArgs = new LogGeneratedEventArgs();
eventArgs.Message = message;
eventArgs.Type = LogType.Info;
LogGenerated?.Invoke(this, eventArgs);
}
public event EventHandler<LogGeneratedEventArgs> LogGenerated;
}
public class LogGeneratedEventArgs : EventArgs
{
public string Message { get; set; }
public LogType Type { get; set; }
}
public enum LogType
{
Error, Info
}
}
说我有另外两个图书馆
这两个库都需要记录其内部工作的信息并相互依赖。所以我为上面的Log管理类开了一个新项目。但我不打算只是为了处理日志记录而创建一个新的引用依赖项。
如果我为该类创建一个独立的C#库,那么每当我创建另一个2的新版本时,我都必须为该Log类库更新NuGet包。
如果我在Visual Studio中将Log类的代码添加为“Add to Link”,则在处理需要这两个库的其他项目时会出现名称空间冲突错误。此外,在处理大型项目时,我会为同一个Log类获取多个名称空间选项。
如何在两个库之间共享代码而不必添加新的引用依赖项和遇到冲突? :)