ASP.Net Web Forms에는 주문 종속 코드를 생성하는 경우가 있습니다. 분명한 코드 냄새로서 나는이 문제를 해결할 해결책을 찾고있다.코드에서 이러한 순서 종속성을 어떻게 제거합니까?
의사 코드 예제는 다음과 같습니다
호출 코드 : Page.aspx
protected void Page_Load(...) {
var control = LoadControl("ControlX.ascx");
// Ugly since the control's constructor is not used by LoadControl
control.SetDependencies(...);
}
제어 코드 :: ControlX.ascx
public void SetDependencies(...) {
}
protected void Page_Load(...) {
if (dependencies are null)
throw Exception();
else
ContinueProcessing();
}
LoadControl
가있다 두 개의 서명이있는 경우 one used above은 컨트롤 c의 문자열을 허용합니다. 물리적 위치를 채우고 자식 컨트롤을 올바르게 만듭니다. second signature은 컨트롤 클래스를 클래스 유형으로, 생성자의 모든 매개 변수를 허용하지만 자식 컨트롤은 이 아니며이 아니며 TRULY Understanding Dynamic Controls으로 생성됩니다.
그럼 내가 어떻게이 순서 의존성을 가장 깨끗한 방법으로 제거 할 수 있습니까? 내 첫 번째 생각은 내가 동적으로 자식 컨트롤을 ControlX
에 만들었지 만 큰 컨트롤에서는 성가신 일이 될 수 있습니다. 생각?
ControlX.ascx의 호스트 (다른 컨트롤 또는 페이지 하나가) (ControlX에 의해 정의 된) 특정 인터페이스를 구현해야합니다
네, 올바르게 이해했습니다. 이것은 분명히 효과가있는 것입니다. –