2014-09-27 3 views
0

내 질문은 "Application_PreRequestHandlerExecute"와 같은 Global.cs에있는 모든 응용 프로그램 메서드를 실행할 수있는 클래스 수준 위치와 같은 다른 방법이 있습니까, 아니면 "Application_Start "? 주요 목표는 이러한 모든 응용 프로그램 메서드를 응용 프로그램의 컴파일 된 dll에 숨기고 Global.cs에서 가져 오는 것입니다.ASP.NET Global.asax Application_PreRequestHandlerExecute

감사

답변

1

당신은 하나의 영문/하나의 클래스 레벨에 대한 응용 프로그램의 실행 흐름을 제어 할 수 없습니다. 모든 클래스에 대해 단일 응용 프로그램이 있으며 요청 파이프 라인 (사전 요청 처리기, 요청 등)을 거치므로 그래서 우리는 HTTPModule이 이러한 파이프 라인 이벤트를 가로 챈 것입니다.

어쨌든, 나는 그 이벤트에 필터를 적용 할 수 있다고 생각합니다. 요청이 abc.aspx 인 경우 해당 클래스에 대해서만 XYZ 만 실행하십시오. 링크를

는 더 도움이 될 수 있습니다 - 당신은 당신의 DLL에 노출하는 API를 호출 "한 - 라이너 '로 Global.ascx에 방법을 설정할 수 있습니다 http://blogs.msdn.com/b/tmarq/archive/2007/08/30/iis-7-0-asp-net-pipelines-modules-handlers-and-preconditions.aspx

0

. 예를 들어 Application_Start()myClass.ApplicationStart()Application_PreRequestHandlerExecute으로 전화 할 수 있으며 myClass.PreRequestHandlerExecute으로 전화 할 수 있습니다. 애플리케이션 네임 스페이스에 public static myClass을 정의하고 API를 결정하기 만하면됩니다. 그런 다음 Global.csmyClass 네임 스페이스를 가져 오십시오.