2012-11-26 4 views
1

그래서 StackOverlow에 대한 의견을 읽었습니다. 비즈니스 로직을 메타 데이터로 간주하기 때문에 사용자 지정 ActionFilterAttribute에 넣으면 안됩니다.ActionFilter에 없으면 로직을 넣을 위치는 어디입니까?

예를 들어 리포지토리에 액세스하고 일부 검사를 수행하고 사용자 지정 특성 (적절하지 않은) 내에서 처리하는 경우.

우선 프레임 워크 필터 (인증) 등으로 인해 비즈니스 로직을 수행하기 때문에 어느 정도 동의 할 지 모르겠습니다. 주로 컨트롤러의 범위 내에서만 주로 사용되는 주요 차이점입니다. 즉, 컨트롤러 값, 경로 데이터 등.

내 질문은 ActionFilter를 사용하여 추가 논리/처리를 위해 개별 조치를 플래그 지정해야 할 때 논리를 어디에 두어야합니까? 입력에 대한

덕분에/

+0

두 번째 단락에 설명 된 수표를 나쁜 것으로 정의한 장소에 대한 링크를 제공 할 수 있습니까? Actionfilters는 이러한 종류의 교차 절단 문제를 해결하기 위해 제작되었습니다. –

+0

http://stackoverflow.com/a/6131160/148998 – shenku

+0

내 대답보기 (질문에 대한 답변보기) : http://stackoverflow.com/questions/13223133/mvc3-release-strategy/13362059#13362059 –

답변

1

에게 약간의 비즈니스 로직을 수행하는 actionfilters를 사용하여 아무 문제가 없습니다. 일반적으로 이것은 로깅, 보안과 같은 크로스 커팅 문제를 구현하는 방법입니다 (지적한대로).

목적은 모두 이름에 있습니다. 액션 용 필터. 들어오는 작업 또는 데이터 의 송신 수정은입니다.

주의해야 할 것은 비즈니스 데이터를 수정하고 변경 사항을 actionfilters에 유지하는 행위입니다. 이러한 종류의 것들은 다음 개발자가 코드를보기에 직관적이지 않습니다. 필터는 아무 것도 필터링하지 않고, 전체 시스템의 상태를 변경합니다. 이는 액션 (명령)이 수행하는 것입니다.

관련 문제