1
핸들러의 메서드에 첨부 할 수있는 몇 가지 사용자 지정 특성을 만들었습니다. 맞춤 속성은 단순한 '태그 지정자'이상입니다. 'RequiresAuthenticationAttribute'입니다. 단순화 된 예 :OperationInterceptor의 MethodInfo에 대한 액세스
EnforceParam 주석 메소드 호출되는 내 인터셉터에서[EnforceParam("Account")]
, 나는 값 "계정"에 접근하고 싶습니다. 이를 위해
public override bool BeforeExecute(IOperation operation)
{
ReflectionBasedMethod method = (ReflectionBasedMethod)((MethodBasedOperation)operation).Method;
MethodInfo methodInfo = method.MethodInfo;
내가 OpenRasta의 ReflectionBasedMethod에 '방법'속성을 추가했다, 일 : 내가 현재 그것을 위해 일을하고있어이 있습니다.
OpenRasta를 해킹하지 않고도 동일한 작업을 수행 할 수 있습니까 (2.0btw).
굉장, 고마워. 같은 유형의 여러 속성을 가질 수 있으므로 FindAttributes (복수형)에갔습니다. 어떤 문제가 발생했는지 : 메서드에 2 개의 EnforceParamAttributes가있는 경우 BeforeExecute가 동일한 인터셉터에서 두 번 호출되지만 BeforeExecute가 호출되는 속성 인스턴스가 아니라면 FindAttributes를 사용하여 모든 속성을 살펴보고 두 번 필요하지 않습니다. BeforeExecute 내에 "ranBefore"플래그를 설정하는 것 이외의 다른 방법을 생각해보십시오. –
@EugeneBeresovksy : 아마도 다른 질문에 답할 가치가 있습니다. 답변을 수락하면 serialseb가 감사 할 것입니다. –
한 번만 등록한 인터셉터는 두 번 이상 실행하면 안됩니다. – SerialSeb