gpt4 book ai didi

asp.net-core - AspNet核心DI : TryAdd vs Add usage

转载 作者:行者123 更新时间:2023-12-02 03:16:55 25 4
gpt4 key购买 nike

来源有comment如果服务已在 IServiceCollection 中注册,则该 TryAdd 版本不会添加服务。但文档没有提到这个方法。什么时候应该使用它?

最佳答案

通常,如果您有一个具有依赖项的库,您将创建 IServiceCollection 的扩展方法,库的使用者将从启动时调用该方法来连接默认依赖项。

当仅应使用接口(interface)的一种实现时,TryAdd 在扩展方法中非常有用。然后,如果有人想要覆盖默认实现,他们可以调用您的扩展方法之前注册它,并且由于他们的实现首先注册,所以 TryAdd 不会添加任何内容。

如果您的扩展方法中使用了 .Add,人们仍然可以通过在调用您的扩展方法之后注册其实现来覆盖默认实现。但在这种情况下,仍然有多个已注册的实现,因此可以依赖 IFoo 的 IEnumerable 并获取已注册的所有实现。但如果他们依赖 IFoo,他们只会得到默认的,即最后添加的。

关于asp.net-core - AspNet核心DI : TryAdd vs Add usage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41743150/

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