什么是 FluentValidation 方法未找到异常的原因?

5

我有一个领域驱动设计的解决方案,但是当通过网关进行API调用时,发生了这个运行时异常:

One or more errors occurred. (Method not found: 'Void FluentValidation.AbstractValidator`1.When(System.Func`2<!0,Boolean>, System.Action)'.)

错误消息如下:

我的解决方案是这样的:

我现在主要关注的4个项目是:
  1. 核心模型
  2. 帐户 API
  3. 服务 API 网关
  4. Web 客户端
Web 客户端服务 API 网关 发送请求,然后调用 帐户 API。 请注意,核心模型任何地方都被引用

非常重要:如果我从 核心模型 中删除 FluentValidation 的引用,则异常会消失。

我希望这些信息足够了。你认为我为什么会得到这个异常,以及如何消除它?
2个回答

9

看起来一些库(ocelot)与FluentValidation 8.1.2的新更改不兼容。尝试降级到8.1.2之前的FluentValidation版本。希望能有所帮助。


非常感谢!您的诊断是100%正确的。然而,FluentValidation v8.*.*版本都无法与Ocelot 12和13版本一起使用。我设法使之工作的唯一版本是7.6.105(可能较早的版本也可以工作,但我使用了最新的版本)。 - E-A
3
我在使用10.1.0时遇到了同样的错误,降级至9.5.4后问题得以解决。 - Kishan Vaishnav

0

我遇到了类似的异常:

System.MissingMethodException:找不到方法: 'FluentValidation.AssemblyScanner FluentValidation.AssemblyScanner.FindValidatorsInAssembly(System.Reflection.Assembly)'

在我的情况下,我需要升级ediatR.Extensions.Microsoft.DependencyInjection和MediatR.Extensions.FluentValidation.AspNetCore包以解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接