删除查找 ViewComponents 的命名约定规则

Remove the naming convention rule for finding ViewComponents

根据 documentation 以下规则确定 class 是否为 ViewComponent:

  1. 从 ViewComponent 派生
  2. 使用 [ViewComponent] 属性修饰 class,或使用 [ViewComponent] 属性从 class 派生
  3. 创建一个 class 名称以 ViewComponent 后缀结尾的

我正在将视图组件添加到现有项目中,并且在该项目中有 class 后缀为“viewComponent”的组件,例如ReviewComponent.

当我调用 IViewComponentSelector.SelectComponent 时抛出异常,因为运行时在这些 classes 上找不到 InvokeAsync 方法。

所以我的问题是,是否可以禁用或删除规则 #3,以便我现有的 classes 不会被误认为是 View 组件,或者有没有办法标记这些 classes 为“不查看组件”?

您可以在有问题的 类 上使用 NonViewComponent 属性,如果这对您来说是一个可行的解决方案:

[NonViewComponent]
public class ReviewComponent
{
    // ...