문제

내 도메인 모델을 WCF 서비스 API로 푸시하려고 하며 이러한 유형의 설정을 통한 지연 로딩 기술에 대해 생각해 보고 싶었습니다.

이 접근 방식을 취할 때 어떤 제안이 있습니까?


이 기술을 구현하고 내 앱을 실행하면 서버가 내 목록을 반환하기 직전에 지연 로드되어야 하는 각 속성의 가져오기에 도달합니다.따라서 열성적인 로딩.이 문제를 설명하거나 해결 방법을 제안해 주실 수 있나요?

편집하다:그것 나타납니다 XMLIgnore 속성을 사용하면 직렬화 중에 확인되지 않습니다.그래도 아직 이것에 대해 읽고 있어요

도움이 되었습니까?

해결책

모든 원격 아키텍처의 경우, 통제되지 않은 방식으로 전체 개체 그래프를 "연속적으로" 로드하는 것을 피하고 싶을 것입니다(개체 수가 매우 적은 경우 제외).

그만큼 위키피디아 기사 표준 기술이 거의 요약되어 있습니다(그리고 C#.도!).나는 유령과 가치 보유자를 모두 사용해 보았고 꽤 잘 작동했습니다.

이러한 종류의 기술을 구현하려면 관심사를 엄격하게 분리해야 합니다.서버에서 서비스 계약 구현 클래스는 데이터 계약과 함께 작동하는 유일한 코드 비트여야 합니다.클라이언트에서는 서비스 액세스 계층이 프록시와 작동하는 유일한 코드여야 합니다.

이와 같은 계층화를 사용하면 서비스를 호출하는 UI 계층 및 호출되는 비즈니스 계층과 상대적으로 독립적으로 서비스가 구현되는 방식을 조정할 수 있습니다.또한 단위 테스트의 절반 기회도 제공됩니다!

다른 팁

서비스 인터페이스를 통해 지연 로딩을 수행하지 마세요.명시적인 DTO를 정의하고 이를 WCF의 데이터 계약으로 사용합니다.

NHibernate(또는 다른 ORM)를 사용하여 DTO를 구성하는 데 필요한 개체를 적절하게 가져올 수 있습니다.

REST 기반의 것을 사용해 볼 수 있습니다(예: ADO.NET 데이터 서비스) 클라이언트 코드에 투명하게 래핑합니다.

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