如何重写从基本控制器asp.net c#继承的操作控制器?
大家好,我想知道是否有一种方法可以覆盖从基本控制器继承来的操作控制器,仅用于添加筛选器属性,此筛选器属性允许验证用户是否具有执行操作控制器的特定权限,这是我的基本控制器如何重写从基本控制器asp.net c#继承的操作控制器?,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,大家好,我想知道是否有一种方法可以覆盖从基本控制器继承来的操作控制器,仅用于添加筛选器属性,此筛选器属性允许验证用户是否具有执行操作控制器的特定权限,这是我的基本控制器 public class BaseController<T> : ApiController where T : Entity<int> { private readonly IEntityService<T> _service; public BaseControll
public class BaseController<T> : ApiController where T : Entity<int>
{
private readonly IEntityService<T> _service;
public BaseController(IEntityService<T> service )
{
_service = service;
}
public BaseController()
{
}
public IEnumerable<T> GetAllEntities()
{
return _service.GetAll();
}
}
public类BaseController:ApiController其中T:Entity
{
私有只读客户端服务;
公共BaseController(IEntityService服务)
{
_服务=服务;
}
公共BaseController()
{
}
公共IEnumerable GetAllenties()
{
return_service.GetAll();
}
}
这是我的子控制器,我想添加filter属性注意下面的代码不正确,但我想这样做,你知道怎么做吗?谢谢你的关注
public class ArbitrosController : BaseController<Arbitro>
{
public ArbitrosController(IArbitroService _ArbitroService):base( _ArbitroService )
{
}
[HasPermission("get")]//filter atribute
public new IEnumerable<Arbitro> GetAllEntities()
{
}
}
公共类仲裁控制器:BaseController
{
公共仲裁控制器(IArbitroService _仲裁服务):基础(_仲裁服务)
{
}
[HasPermission(“get”)]//过滤阿曲布他
公共新IEnumerable GetAllenties()
{
}
}
在基类中使用virtual
关键字,在子类中使用覆盖
。要从重写访问基类,可以使用base
关键字:
public class BaseController<T> : ApiController where T : Entity<int>
{
...
public virtual IEnumerable<T> GetAllEntities()
{
return _service.GetAll();
}
}
public class ArbitrosController : BaseController<Arbitro>
{
...
[HasPermission("get")]//filter atribute
public override IEnumerable<Arbitro> GetAllEntities()
{
return base.GetAllEntities();
}
}
public类BaseController:ApiController其中T:Entity
{
...
公共虚拟IEnumerable GetAllenties()
{
return_service.GetAll();
}
}
公共类ArbitrosController:BaseController关于C#中的继承。非常感谢@andrew这正是我需要的