在 C# 中,在 MVC 3 中的方法上方调用的那些括号是什么?
[ErrorHandler, SomethingHere]
public function Test() {
}
不知道你所说的“那些括号”是什么意思。函数前面是一个属性。
并在使用方面进行一些扩展:
属性是可以放置在源代码元素上并用于在编译时存储特定于应用程序的信息的注释。此信息存储在元数据中,可以在应用程序执行期间通过称为反射的过程或其他工具读取元数据时访问。属性可能会在执行期间改变应用程序的行为,提供有关对象的事务信息,或将组织信息传达给设计者。gnu.org
这些被称为Attributes
。属性是从抽象类 System.Attribute 继承的类。按照惯例,所有属性都有一个以“属性”一词结尾的类名。以下是一些 MVC3 属性:
AcceptViewAttribute
ActionFilterAttribute
ActionMethodSelectorAttribute
ActionNameAttribute
ActionNameSelectorAttribute
AuthorizeAttribute
BindAttribute
CustomModelBinderAttribute
FilterAttribute
HandleErrorAttribute
HiddenInputAttribute
HttpDeleteAttribute
HttpGetAttribute
HttpPostAttribute
HttpPutAttribute
ModelBinderAttribute
NonActionAttribute
OutputCacheAttribute
RequireHttpsAttribute
ValidateAntiForgeryTokenAttribute
ValidateInputAttribute
你可以创建你的自定义属性
属性
它推断出 Attribute 一词,因此您的示例与以下内容同义:
[ErrorHandlerAttribute, SomethingHereAttribute]
public function Test() {
MVC 运行时使用反射来查找属性。然后 MVC 使用这些关于定位属性的信息来查找方法将如何执行,安全限制是什么等等
这些被称为方法属性。您可以在msdn 网站上阅读更多内容