如何创建"过滤器"为课堂'方法?

时间:2017-06-27 16:09:37

标签: c#

使用ASP.NET,我创建了一些扩展ExceptionFilterAttributeActionFilterAttribute的过滤器。使用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的实施情况,但我认为我不知道如何搜索它,因为我找不到任何东西......

0 个答案:

没有答案