如何解决不同类型服务的 IEnumerable

问题描述

这是我的界面:

public interface ISocialService<T> where T : ISocialModel
{
    public Task<List<T>> GetPosts();
}

我有这个接口的 2 个实现。 这就是我尝试注册它们的方式

services.AddScoped<ISocialService<RedditPost>,RedditService>();
services.AddScoped<ISocialService<HackerNewsModel>,HackerNewsService>();

最后这就是我尝试解决它们的方法。

public ScrapeJob(IEnumerable<ISocialService<ISocialModel>> socialServices)
{
    _socialServices = socialServices;
}

然而,socialServices 是空的。 我认为问题在于 ISocialModel。 有人建议我如何正确注册或解决这些问题吗?

我想使用通用接口的原因是我想像这样将特定服务注入到控制器中:

public HackerNewsController(ISocialService<HackerNewsModel> socialService)
        {
            _socialService = socialService;
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)