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

Posted

技术标签:

【中文标题】删除查找 ViewComponents 的命名约定规则【英文标题】:Remove the naming convention rule for finding ViewComponents 【发布时间】:2021-12-28 17:08:22 【问题描述】:

根据documentation,以下规则确定一个类是否为 ViewComponent:

    从 ViewComponent 派生 使用 [ViewComponent] 属性装饰类,或从具有 [ViewComponent] 属性的类派生 创建名称以后缀 ViewComponent 结尾的类

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

当我调用 IViewComponentSelector.SelectComponent 时,由于运行时无法在这些类上找到 InvokeAsync 方法,因此引发了异常。

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

【问题讨论】:

【参考方案1】:

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

[NonViewComponent]
public class ReviewComponent

    // ...

【讨论】:

以上是关于删除查找 ViewComponents 的命名约定规则的主要内容,如果未能解决你的问题,请参考以下文章

google风格C/C++编程规范 --- 命名约定

流星文件命名约定会阻止它处理?

97函数调用的约定

我应该对 REST 资源使用单数还是复数命名约定?

复合词的文件名约定?

防止在 Asp.Net Core ViewComponents 中加载多个 JavaScript 脚本