8 c# asp.net asp.net-mvc asp.net-mvc-3
在我的示例代码中,我有以下内容:
namespace WebUx.Filters
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class InitializeSimpleMembershipAttribute : ActionFilterAttribute
{
private static SimpleMembershipInitializer _initializer;
private static object _initializerLock = new object();
private static bool _isInitialized;
public override void OnActionExecuting(ActionExecutingContext filterContext)
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释这是如何工作的吗?这会自动附加到每个类方法还是仅附加到控制器类?我正在使用MVC和web api.它还会附加到web api方法吗?
AttributeUsage不是特定于MVC.它描述了属性的使用位置和方式.
在大多数(所有?)情况下,编译器将强制执行这些约束.
然而,没有任何"神奇"发生; 你仍然需要使用属性来装饰类/成员,因为它可以做任何事情.换句话说,它不会自动应用于所有类型或成员.*
另见:http://msdn.microsoft.com/en-us/library/tw5zxet9(v=vs.110).aspx
*该Inherited物业确实提供非常有限的自动化.请参阅继承如何为Attributes工作?.
| 归档时间: |
|
| 查看次数: |
5937 次 |
| 最近记录: |