1
我在处理程序中创建了一些自定义属性,并将其附加到我的方法中。自定义属性不仅仅是“标签”,例如, 'RequiresAuthenticationAttribute'。一个简单的例子:在OperationInterceptor中访问MethodInfo
[EnforceParam("Account")]
在我的拦截,被调用与EnforceParam注解的方法,我想获得进入价值“帐户”。什么我目前在做该是这样的:
public override bool BeforeExecute(IOperation operation)
{
ReflectionBasedMethod method = (ReflectionBasedMethod)((MethodBasedOperation)operation).Method;
MethodInfo methodInfo = method.MethodInfo;
对于工作,我不得不添加的“方法”属性OpenRasta的ReflectionBasedMethod。
同样可以完成没有黑客OpenRasta(我在2.0 btw)?
太棒了,谢谢。我去了FindAttributes(复数),因为我可以有多个相同类型的属性。这引发了一个问题:当我在一个方法上有两个EnforceParamAttributes时,BeforeExecute在同一个拦截器上被调用两次,但由于我没有调用BeforeExecute的属性实例,所以我将使用FindAttributes来查看所有属性,两次是没有必要的。任何关于如何解决这个问题的想法,除了在BeforeExecute中设置一个标记“ranBefore”? –
@EugeneBeresovksy:这可能值得另一个问题 - 我相信如果你接受他的回答,serialseb会很感激! –
如果你只注册一次,不应该有一次以上的拦截器执行,那是你所看到的吗? – SerialSeb