【问题标题】:ASP.NET MVC: ActionMethodSelector / ActionFilter (Attribute) naming conventionsASP.NET MVC:动作方法选择器/动作过滤器(属性)命名约定
【发布时间】:2012-07-02 13:31:57
【问题描述】:

您认为 ActionMethodSelector 与 ActionFilter(属性)区别的最佳命名约定是什么。

我需要一个与 AuthorizeAttribute-ActionFilter 功能相同的 ActionMethodSelector,但您如何命名该 ActionMethodSelectorAttribue? (实现不是问题)

【问题讨论】:

  • 为什么不简单地添加“过滤器”作为过滤器的后缀,并在属性上添加“属性”?

标签: asp.net asp.net-mvc actionfilterattribute


【解决方案1】:

如果对是否遵循框架约定有疑问,如果您查看它们的一些实现,您会发现在这两种情况下它们都只是使用Attribute 后缀。

AcceptVerbsAttribute : ActionMethodSelectorAttribute

等等

OutputCacheAttribute : ActionFilterAttribute

等等

如果您以这种方式使用框架属性没有问题,我认为您没有理由为自己的代码做任何不同的事情。

除非你想当然:D

【讨论】:

    【解决方案2】:

    你认为最好的命名约定是什么 ActionMethodSelector 与 ActionFilter (Attributes) 区分开来。

    后缀:

    • XXXActionMethodSelector
    • XXXAttribute 或 XXXActionFilterAttribute

    其中 XXX 显然是那些类应该完成的功能。

    【讨论】:

    • 感谢您的回答。这个解决方案我已经在考虑了,但是后缀很长,看起来很难看。在 MVC 框架本身中,它们不使用后缀,所以我对它们如何定义这些属性的名称很感兴趣。但是没有后缀就没有解决方案,区分两个方面,不分析属性。 (这是合乎逻辑的)
    【解决方案3】:
    XXXXSelectionAttribute
    

    VS

    XXXXFilterAttribute
    

    其实没关系,只要你的实现与你的实现一致,前缀或后缀为其意图添加了清晰的画面。

    恕我直言。

    【讨论】:

    • 感谢您的回答。我知道这并不重要,但我非常喜欢干净的代码 :) 但是例如,您将如何命名 Authorize-ActionMethodSelectorAttribute?我经常看到 ActionMethodSelectorAttribute 的前缀/后缀“Required”、“Only”、“Allow”、“Accept”。也许“RequiredAuthorization”是个好名字。
    • @ben 就我个人而言,我会让它们非常细化,而不是加入 Authorize 属性和 ActionMethodSelectorAttribute。但如果是这样的话,我会加入特定的词,比如 XXXXAuthorizeSelectionAttribute,它表示授权和选择能力。确定您喜欢的顺序,使一切保持一致(在选择之前授权,反之亦然)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2011-07-24
    • 1970-01-01
    相关资源
    最近更新 更多