当前位置: 首页 > 知识库问答 >
问题:

WebApi 3.1未注册T类型的服务

寿鸣
2023-03-14

试图在我的控制器中注入回购协议,但它不起作用,我不断收到相同的错误。我就是这么做的。

界面

public interface IGeneral
{
    Task<Message> RegisterAsync(UserModel model);
}

背景

public abstract class BaseRepository
{
    protected readonly Context Context;

    public BaseRepository(Context context)
    {
        Context = context;
    }
}

存储库

public class General : BaseRepository, IGeneral
{
    public General(Context context) : base(context) {}

    public async Task<Message> RegisterAsync(UserModel model)
    {
        var result = await Context.User.Where(a => a.Email == model.Email).FirstOrDefaultAsync();
        if(result != null)
        {
            await Context.User.AddAsync(new Data.Access.Models.User 
            { Date = DateTime.Now, Email = model.Email, Name = model.Name, Password = model.Password });
            await Context.SaveChangesAsync();
        }
        return Message.Exists;
    }
}

实施

[HttpPost("Register")]
    public async Task<IActionResult> Register([FromServices] General general, UserModel userModel)
    {
        try
        {
            return Ok(await general.RegisterAsync(userModel));
        }
        catch (Exception ex)
        {
            return BadRequest();
        }
    }

Startup.cs

services.AddTransient<IGeneral, General>();

还有我从邮递员那里得到的奖励!

系统。无效操作异常:没有类型为“Mangue. Api. Services. Repository. General”的服务已被注册。在Microsoft。扩展。依赖注入。ServiceProviderService扩展。Microsoft. AspNetCore. Mvc. ModelBding. Binders. ServicesModelBinder. BindModelAsync(ModelBindingContext bindingContext)在Microsoft. AspNetCore. Mvc. ModelBinda. ParameterBinder. BindModelAsync(ActionContext actionContext, IModelBinder Binder, IValueProvider value eProvider, ParameterDescriptor参数,ModelMetadata元数据,对象值)在Microsoft. AspNetCore. Mvc.控制器。控制器。

共有1个答案

冯育
2023-03-14

您注册了IGeneral类型的服务(解析为General),但您请求的是General而不是IGeneral实例
注册函数中将General更改为IGeneral,它就会工作。

 类似资料:
  • 当我执行时,我的服务按预期列出,但当我从web或通过功能测试访问我的包时,我得到: 未捕获的PHP异常Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:“您请求了一个不存在的服务”xx。处理程序”在xx/app/bootstrap。php。缓存行2031{“异常”:“[对象](Symfony\Compo

  • 我正在尝试注册服务工作者,但出现错误: 该页面使用github Pages托管:https://boopathi.in/sw-demo-iss。源代码在这里https://github.com/boopathi/sw-demo-iss 我试图理解这意味着什么,以及如何解决错误。

  • 问题内容: 无法编码 http://play.golang.org/p/Si4hd8I0JE 可以在gob中编码吗?我可以用JSON编码 问题答案: 加 http://play.golang.org/p/Dd3IzJgl0A

  • 在64位计算机上运行Visual Studio 2012应用程序时,会显示以下错误消息: 由于以下错误,检索CLSID为{F2D4F4E5-EEA1-46FF-A83B-A270C92DAE4B}的组件的COM类工厂失败:80040154类未注册(HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG)) 我正在visualstudio中使用Inventor packa

  • 我正在将我的应用程序升级到JBoss 7.1.1,现在将使用RestEasy。我在让RestEasy工作时遇到问题。我收到错误HTTP状态404-找不到相对的资源。我相信这意味着它找不到正确的endpoint。我怀疑扫描和注册服务存在一些问题。但我可能错了。注意:我没有使用Maven 这是我网站的一部分。与RestEasy相关的xml: 以下是我正在使用的示例资源: 我尝试过的url是:http:

  • 我刚刚关注了下面这篇文章,https://spring.io/blog/2015/07/14/microservices-with-spring,但是我无法在尤里卡注册我的微服务。 customer-service.yml build . gradle for customer-service CustomerService.java 注册-server.yml