2010-03-29 6 views
1

DataGrid의 ItemsSource를 웹 서비스의 결과로 설정하는 간단한 Silverlight 응용 프로그램이 있습니다. 이 모든 것은 정상적으로 작동하지만 지금은 더 추상적으로 만들려고 노력하고 있습니다. 웹 서비스에 매개 변수를 전달하고 매개 변수에 따라 예를 들어 List<Customer> 또는 List<Product> 중 하나를 반환하고 싶습니다.Silverlight Items 소스 및 웹 서비스

그러나 나는 추상적 인 목록을 되돌릴 방법을 찾을 수없는 것 같습니다. 특정 유형의 목록이어야하는 것 같습니다. 이게 옳은 거니?

감사합니다,

AJ는 SOAP 봉투와 포함하는 필드 것을 알 수 있도록

답변

2

웹 서비스 정의가 반환되는 내용의 구조를 알고 있어야하므로 해당 서비스에 가입자가 무엇을 알고 예상되는. 하나 또는 다른 것을 반환하고 싶다면 두 가지 다른 서비스를 사용하거나 두 가지를 모두 표현할 수있는 유형을 생성하고 그 콜렉션을 반환해야합니다. 그런 다음 클라이언트 측에서 랩핑해야합니다. 특정 용도와 관련이 없습니다. 예를 들어

,

struct CustomerOrProduct 
{ 
    ItemType type = ItemType.Customer; // This indicates the type that the struct is currently representing 

    string name;  // This is for products and customers 
    string address; // This is for customers only 
} 

은 분명히이 구조체 등 속성 접근으로 구체화 필요하지만, 그것은 당신에게 아이디어를 제공해야합니다. 그러나, 나는 이렇게하는 것이 좋습니다. 대신 검색하려는 각 유형에 대해 별도의 서비스를 사용해야합니다. 결국 필요한 유형을 매개 변수로 전달할만큼 충분한 정보가 있으면 다른 서비스를 호출 할 수 있습니다.

+1

동의 - 별도로 보관하십시오. 그러면 고객은 무엇을 기대해야하는지 정확하게 알 수 있습니다. 대부분의 언어는 어쨌든 그런 오버로딩을 허용하지 않을 것입니다. – Ryan