c#隐藏派生类中的属性

Pau*_*ulN 6 c# asp.net-mvc language-design

我有一个带有属性的基类,我想在派生类中隐藏它.除了使用反射之外,还有什么方法可以做到这一点吗?

[Authorize(Roles = "User,Admin,Customs")]
public abstract class ApplicationController : Controller
{
}

// hide the Authorize attribute
public class ErrorController : ApplicationController
{
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*Joe 4

您可以使用自己的类覆盖 AuthorizeAttribute 并指定它不被继承。

[AttributeUsage(AttributeTargets.Class, Inherited=false)]
public class NonInheritedAuthorizeAttribute : AuthorizeAttribute
{
    // Constructors, etc.
}
Run Code Online (Sandbox Code Playgroud)

现在你可以指定使用哪个类,只要你拥有ApplicationController。