我做了一些快速的谷歌搜索并没有想出任何方法来做到这一点,所以如果这个问题是重复,我道歉。
我有一个类:
using System.Web;
using System.Web.Mvc;
namespace Authorization
{
public class AuthorizeAttribute : ActionFilterAttibute
{
public string Address { get; set; }
public override void OnActionExecuting(ActionExecutingContext context)
{
if (HttpContext.Current.Request.UserHostAddress != Address)
context.Result = new HttpStatusCodeResult(403);
base.OnActionExecuting(context);
}
}
}
问题在于,无论何时将此属性添加到项目中的其他类,都可以通过两种方式进行定义。第一种方法基本上就像调用属性的默认构造函数一样;没有数据传入。第二种方式允许指定Address
。
我有一种感觉,我无法删除第一个选项,因为它可能通过我创建的那个的父类以某种方式指定。但是有可能只有第二种选择吗?这将是理想的。
答案 0 :(得分:3)
我认为您想使用构造函数来设置Attribute属性(或字段),所以像这样:
public class AuthorizeAttribute : ActionFilterAttibute
{
private readonly string _attribute;
public AuthorizeAttribute(string attribute)
{
_attribute = attribute;
}
}