gpt4 book ai didi

c# - MVC4 中的 AttributeUsage 有什么作用

转载 作者:太空狗 更新时间:2023-10-29 18:27:18 25 4
gpt4 key购买 nike

在我的示例代码中,我有以下内容:

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)

有人可以向我解释一下这是如何工作的吗?这会自动附加到每个类方法还是仅附加到 Controller 类?我同时使用 MVC 和 web api。它还会附加到 Web API 方法吗?

最佳答案

AttributeUsage 并非特定于 MVC。它描述了可以在何处以及如何使用属性。

在大多数(所有?)情况下,编译器将强制执行这些约束。

然而,没有任何“神奇”的事情发生;你仍然需要用属性来装饰类/成员,因为它可以做任何事情。换句话说,它不会自动应用于所有类型或成员。*

另请参阅:http://msdn.microsoft.com/en-us/library/tw5zxet9(v=vs.110).aspx

*Inherited 属性确实提供了非常有限的自动化。参见 How does inheritance work for Attributes? .

关于c# - MVC4 中的 AttributeUsage 有什么作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15084546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com