Silverlight ItemsSource и веб-сервис - PullRequest
1 голос
/ 29 марта 2010

У меня есть простое приложение Silverlight, которое просто устанавливает DataSrid ItemsSource на результат веб-службы. Все это работает хорошо, но сейчас я пытаюсь сделать это более абстрактным. Я хотел бы передать параметр в веб-службу и вернуть, например, List<Customer> или List<Product> в зависимости от параметра.

Но я просто не могу найти способ вернуть абстрактный список. Кажется, это должен быть список определенного типа. Это правильно?

Спасибо

AJ

1 Ответ

2 голосов
/ 29 марта 2010

Определение веб-службы должно знать структуру того, что возвращается, чтобы оно знало, какие поля следует включить в конверт 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
}

Очевидно, что эта структура нуждается в уточнении с помощью методов доступа к свойствам и т. Д., Но она должна дать вам идею. Однако я не рекомендую делать это так. Вместо этого вы должны использовать отдельные сервисы для каждого типа, который вы хотите получить. В конце концов, если вы знаете достаточно для передачи нужного типа в качестве параметра, вы знаете достаточно для вызова другой службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...