在我的示例代码中,我有以下内容:
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)有人能给我解释一下这是怎么回事吗?这是自动附加到每个类方法,还是只附加到控制器类?我同时使用了MVC和web api。它还会附加到web api方法上吗?
发布于 2013-02-26 16:34:37
确定如何使用自定义属性类。AttributeUsage是可应用于自定义属性定义的属性,以控制如何应用新属性。
因此,它基本上为编译器提供了一些关于您将实现的属性类的额外信息。
你在http://msdn.microsoft.com/en-us/library/tw5zxet9(v=vs.100).aspx上有一些很好的例子:
发布于 2013-02-26 16:34:34
它的作用与在所有其他类型的应用程序中完全相同(没有特殊的MVC行为)-指定可以使用特定属性的位置。
发布于 2013-02-26 16:38:00
AttributeUsage规定了在何处以及如何使用该属性。因此,您的示例可以应用于类或方法,但对于每个实体只能应用一次。
它不会自动附加到任何类。你必须自己显式地做这件事。
请参阅AttributeUsage上的C#编程指南:http://msdn.microsoft.com/en-us/library/tw5zxet9(v=vs.80).aspx
https://stackoverflow.com/questions/15084546
复制相似问题