문제

게으른 부하 패턴을 사용하여 완전히로드하거나 게으른로드 할 수있는 DTO가 있습니다. 로드되는 방법은 Flex 응용 프로그램에 필요한 것에 달려 있습니다. 그러나이 DTO는 Flex 응용 프로그램 (SWF)으로 전송됩니다. 일반적으로 예를 들어 컬렉션은 호출 될 때만로드됩니다. 그러나 필자의 경우 컬렉션은 Flex에서만 호출되므로 .NET 쪽의 내 구현은 분명히이 경우 작동하지 않습니다 (Flex가 서버 호출을하는 경우를 제외하고는 제외하고는 피하고 싶은 것).

컬렉션의 getter에서 데이터는 데이터베이스에서 검색됩니다. ASP.NET 페이지로 작업하는 경우 DTO가 Flex로 전송 된 경우에는 작동하지 않습니다.

이것을 어떻게 처리 하시겠습니까? DTO를 Flex로 보내기 전에 Getter에게 전화 할 수는 있지만 끔찍한 것 같습니다 ... + Getter에게 전화를 걸면 무언가에 할당 된 경우에만 수행 할 수 있습니다 (그리고 컬렉션을 보유 할 로컬 변수는 절대 사용되지 않습니다 ... ).

도움이 되었습니까?

해결책

나는 아마도 a를 소개 할 것이다 Finalize 클래스 및 아마도 a FinalizeAll 클래스의 다양한 컬렉션에 대한 확장 방법. 이 방법은 단순히 클래스의 공개 속성에 대한 모든 게터를 통과하고 참조하여로드되도록합니다. 당신은 호출 할 것입니다 Finalize (또는 FinalizeAll) 객체를 Flex 앱으로 보내기 전에. 객체를 전송하기 전에 최종화의 필요성을 테스트하고 각 클래스를 개별적으로 확인하지 않고 인터페이스 테스트를 기반으로 메소드를 호출 할 수 있도록 인터페이스를 만들 수 있습니다.

참고 : Finalize는 마음에 떠오른 이름입니다. 이것에 대한 더 나은 이름이있을 수 있습니다.

다른 팁

부양 가족을로드하는 방법을 소개 할 수 있습니다. loadDependencies - 와이어 위로 전송되기 전에 DTO 객체에 대한 모든 게으른 하중을 가져와야합니다 (플렉스). 이 방법을 인터페이스로 추출하여 다른 DTO에서 이러한 프로세스를 간소화 할 수 있습니다. 이 방법 내에서 설명하는 방식으로 Getters를 사용하는 것에 대해 아무것도 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top