WCF 서비스 용으로 proxy 개체로 조회 개체/구성 요소를 만드는 것이 좋습니다. 그것은 여러 가지 방법으로 작업 할 수 있지만, 대부분의 간단한 내 마음에 오기는 다음과 같습니다
- 이 모든
Products
엔티티를 제공하는 방법으로 WCF 서비스를 구현 한 (제품 코드에 예를 들어 내놓고.)
- 구현 요청 제품을 얻을 수 WCF 클라이언트를 사용하는 구성 요소는 현실을 부르 자
ProductsProvider
에 의존 걸릴 것입니다 귀하의 뷰 모델 ProductsProvider
(예. constructor injection를 통해)
이 모델의 주요 요소는 ProductsProvider
입니다. Products
개체에 대해 일종의 캐시로 작동합니다. 먼저 웹 서비스에 모든 제품 (또는 원하는 부분까지)을 요청할 것입니다. 그런 다음 제품을 검색해야 할 때마다 제공자에게 물어보십시오. 제품이 인 방법을 처리하는 것은 제공자의 책임입니다. - 아마도 이미 지역 목록에 있습니까? 업데이트를 위해 웹 서비스를 호출해야합니까? 예 : 이제
public class ProductsProvider
{
private IList<Product> products;
private IProductsService serviceClient;
public ProductsProvider(IProductsService serviceClient)
{
this.serviceClient = serviceClient;
this.products = serviceClient.GetAllProducts();
}
public Product LookUpProduct(string code)
{
// 1: check if our local list contains product with given code
// 2: if it does not, call this.serviceClient.LookUpProduct
// 3: if service also doesn't know such product:
// throw, return null, report error
}
}
이 당신에게주는 무슨이다 :
- 당신 만이 필요 하나
ProductsProvider
예를 서비스를 호출하는 방법을 때와
- 더 나은 유연성
당신의 보기 모델은 전혀 WCF를 다룰 필요가 없습니다.
편집 :
두 번째 질문은. 제어가 필요하지 않을 수도 있지만 Product
엔티티에 대한 뷰 모델을 갖는 것이 좋습니다.