使用ASP.NET,我创建了一些扩展ExceptionFilterAttribute
和ActionFilterAttribute
的过滤器。使用ActionFilterAttribute
,我可以在方法执行之前或之后执行操作。我想模仿我班上的这种行为。我有一个名为BaseService
的基类,每当调用此类的方法时,我想检查它是否包含属性以及是否执行该属性。例如,在我的派生类中,我有类似的方法:
public void DoSomething()
{
LoggedUser.RequireAnyRole<RoleX, RoleY>("DoSomething");
// code here
}
public void DoSomething2()
{
LoggedUser.RequireRole<RoleX>("DoSomething2");
// code here
}
而不是写LoggedUser.RequireRole...
我不喜欢它是一个属性。这样我就可以在DoSomething2
:[RequireRole(Roles.X)]
之上添加一个属性。
这可能吗?如果是这样,最好的方法是什么?我正在阅读与callmember相关的内容,但我不确定是否可以这样做。我检查了https://github.com/ASP-NET-MVC/aspnetwebstack的实施情况,但我认为我不知道如何搜索它,因为我找不到任何东西......