【问题标题】:IRequestHandler Interface not implementedIRequestHandler 接口未实现
【发布时间】:2018-10-01 16:26:38
【问题描述】:

我想实现一个简单的 mediatr 任务来将记录发送到数据库。 我的想法来自https://jonhilton.net/2016/06/06/simplify-your-controllers-with-the-command-pattern-and-mediatr/

但是,我得到了这个错误,我没有实现我在下面实现的 Handle 接口。 偷看Handler接口看到Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken);

现在,取消令牌有什么用,以及如何使此代码正常工作。

此外,当我尝试使用_mediator.Send(blog) 时出现此错误无法从用法中推断方法“IMediator.Send(IRequest, CancellationToken)”的类型参数。尝试明确指定类型参数

我希望它足够清楚。

【问题讨论】:

    标签: c# .net-core mediator


    【解决方案1】:

    您的Handle 方法签名缺少CancellationToken。 您不需要使用它本身,而是将其传递给任何较低的调用,如 DB 调用。你的签名需要它,但如果你没有通过,你可以使用CancellationToken.None

    它本质上是用来通知较低的依赖,因为这个操作被取消了,他们应该停止做事。

    【讨论】:

    • 我尝试过做某事 -> Controllers/BloggitController.cs(46,36): error CS0411: The type arguments for method 'IMediator.Send(IRequest, CancellationToken) ' 不能从用法中推断出来。尝试明确指定类型参数。
    • var record = _mediator.Send(blog);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多