gpt4 book ai didi

c# - 使用引用项目的引用

转载 作者:行者123 更新时间:2023-11-30 22:52:51 25 4
gpt4 key购买 nike

我正在尝试将我的解决方案拆分为一个主项目和一个包含一些辅助类的项目。 “帮助项目”使用一些外部库,例如NLog.

我在我的 csproj 文件中这样引用 NLog:

<ItemGroup>
<PackageReference Include="NLog" Version="4.6.6" />
</ItemGroup>

我可以在我的助手项目中很好地使用 NLog。但是 helper 项目可能会在许多不同的主项目中使用,所以如果仅从我的主项目中引用 helper 项目也能让我在我的主项目中访问 NLog,那会很好,但这是行不通的。我总是必须在我的主项目中显式添加对 NLog 的引用。

我可以做些什么来在我的主项目中引用 NLog 而无需手动添加对 NLog 的引用吗?

最佳答案

Is there anything I can do to reference NLog in my main project without manually adding the reference to NLog there?

不,这就是引用的工作方式。您需要将包引用添加到直接使用它的每个项目*。


但是,通常处理日志记录的方式是“帮助”库对用于日志记录的实际 库一无所知。它只知道一个接口(interface)。一个过度简化的例子是:

public interface ILogger
{
void Log(string message);
}

然后托管应用程序的工作是实现该接口(interface)(例如,使用 NLog)并使用依赖注入(inject)将其传递给帮助程序类。


* 有一种情况你不需要引用,但它有点深奥。如果您的程序集不直接使用引用,而只是位于两个使用的程序集之间。您不需要直接添加引用。它与您的具体情况无关

关于c# - 使用引用项目的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57753420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com