跨多个相互引用的C#库共享类代码

时间:2016-06-15 15:31:41

标签: c# visual-studio

我正试图在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
    }
}

说我有另外两个图书馆

  1. 图书馆1
  2. 图书馆2
  3. 这两个库都需要记录其内部工作的信息并相互依赖。所以我为上面的Log管理类开了一个新项目。但我不打算只是为了处理日志记录而创建一个新的引用依赖项。

    如果我为该类创建一个独立的C#库,那么每当我创建另一个2的新版本时,我都必须为该Log类库更新NuGet包。

    如果我在Visual Studio中将Log类的代码添加为“Add to Link”,则在处理需要这两个库的其他项目时会出现名称空间冲突错误。此外,在处理大型项目时,我会为同一个Log类获取多个名称空间选项。

    如何在两个库之间共享代码而不必添加新的引用依赖项和遇到冲突? :)

0 个答案:

没有答案