gpt4 book ai didi

asp.net-mvc - 使用 Unity 的 IDependencyResolver.GetServices 是否应该返回默认(未命名)注册

转载 作者:行者123 更新时间:2023-12-01 06:46:12 24 4
gpt4 key购买 nike

在使用 Unity 进行依赖注入(inject)时,我对 MVC 的 IDependencyResolver.GetServices 的实现有疑问。

可以找到几个示例实现,其中大部分已经实现以解决 Unity 在尝试解析未注册类型时抛出异常的问题。

通常 GetServices 是这样实现的:

IEnumerable<object> IDependencyResolver.GetServices(Type serviceType)
{
try
{
return _container.ResolveAll(serviceType);
}
catch
{
return new List<object>();
}
}

我担心的是,无论哪种方式,我都无法找到任何确认,是 ResolveAll 不返回默认(未命名)注册。见 here .

IDependencyResolver 的文档没有发表同样的声明。

有谁知道 IDependencyResolver.GetServices 是否应该返回所有注册实例或仅返回命名实例(使用 Unity 用语)?

最佳答案

试试下面的代码。我希望这会奏效。

return (serviceType.IsClass && !serviceType.IsAbstract) ||        _container.IsRegistered(serviceType) ? _container.ResolveAll(serviceType) : new object[] {};

关于asp.net-mvc - 使用 Unity 的 IDependencyResolver.GetServices 是否应该返回默认(未命名)注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092421/

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