gpt4 book ai didi

c# - IServiceProvider.GetService(Type serviceType) 的目的是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:27 27 4
gpt4 key购买 nike

我正在实现一个新的 .NET Core 项目并为我的服务层进行依赖注入(inject)。我创建了一个实现 IServiceProvider 的接口(interface),现在必须实现 GetService(Type serviceType)。这是我的界面。

public interface INewsService : IServiceProvider
{
IEnumerable<string> GetAllSources();
}

public class NewsService : INewsService
{
private readonly INewsRepository _newsRepository;

public NewsService(INewsRepository newsRepository)
{
_newsRepository = newsRepository;
}

public IEnumerable<string> GetAllSources()
{
return _newsRepository.GetAllSources();
}

public object GetService(Type serviceType)
{
throw new NotImplementedException();
}
}

该方法的目的是什么?通读MSDN documentation ,真的很模糊,并没有把它弄清楚太多。我的代码在我启动时运行...所以我不确定它需要做什么。

最佳答案

Gets the service object of the specified type.

您不应该在 INewsService 接口(interface)上实现 IServiceProvider

IServiceProvider 描述工厂以创建您的服务实例:

IServiceProvider provider = GetServiceProvider();
var newsService = provider.GetService(typeof(INewsService));

阅读有关服务提供商的更多信息:IServiceProvider in ASP.NET Core

关于c# - IServiceProvider.GetService(Type serviceType) 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49570686/

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