在C#中,属性应该使用PascalCase命名,并在其名称之后加上“Attribute”后缀,如此处所述。我的问题与更微妙的事情有关; 当涉及到自然语言时,属性应该如何命名?
例如 - 我有一个授权属性在ASP MVC应用程序中,它检查已登录用户是否有权查看模块(由特定控制器表示)。我决定将其命名为:
例如 - 我有一个授权属性在ASP MVC应用程序中,它检查已登录用户是否有权查看模块(由特定控制器表示)。我决定将其命名为:
[IsLoggedUserAuthorizedToSeeModule(ModuleName = ModuleManager.Modules.ExampleModule)]
public class ExampleModuleController : BaseController
{
...
}
我很容易理解,但这是一个很长的名称,我对此表示怀疑。微软通常会提供默认属性的简短名称,但它们并不是非常统一。 Serializable
属性意味着装饰的类可以被序列化。 ObsoleteAttribute
属性意味着装饰的类有一些状态。Description 和 Category 属性定义元数据。
默认 .NET 属性的完整列表可以在这里找到。
有关属性命名约定的指南吗?你知道任何相关文章吗?
ModulePermissions
是一个更通用的名称,以后可以添加其他属性。IsLoggedUserAuthorizedToSeeModule
是具体的,如果该属性需要支持其他选项,则可能需要更改。 - Loathing[ExposeModuleToAuthenticatedUser]
或者[ExposeModuleToLoggedUser]
。 - Matthew Watson