|
WCF Как реализовать в клиенте обработку нескольких сервисов
|
|||
---|---|---|---|
#18+
Добрый день! Есть клиент и сервис, с которым он взаимодействует. Всё хорошо работает, когда клиент обращается к единственному сервису: using Client.ServiceReference1; ... BackupMonitorClient proxy1 = new BackupMonitorClient() proxy.GetFiles() Однако появилась потребность использовать еще несколько сервисов с одинаковым контрактом (тот же самый сервис, только хостится на других машинах в домене). Соответственно, после добавления строчек using Client.ServiceReference1; using Client.ServiceReference2; using Client.ServiceReference3; появляется неднозначность при создании дополнительных прокси-классов: BackupMonitorClient proxy2 = new BackupMonitorClient() проблема решается добавлением названия пространства имен перед именем класса: Client.ServiceReference2.BackupMonitorClient Service2 = new Client.ServiceReference2.BackupMonitorClient() А теперь вопрос: клиент написан на WinForms и вся логика приложения написана в зависимости от того, какой сервис выбран на форме (например, показать список файлов на машине PC01). Хранить список прокси-классов в какой-нибудь коллекции и использовать обобщенную переменную proxy не получится, т.к. формально эти классы лежат в разных пространствах имен и имеют соответственно разные типы (хотя контракты служб у них одинаковые). Соотвественно, вызывать методы сервиса на стороне клиента не получится, т.к. не понятно к какому прокси-классу обращаться (proxy1 или proxy2): private void btnOK_Click(object sender, EventArgs e) { proxy1.GetFiles();//??????? proxy2.GetFiles();//?????? //хотелось бы использовать вот так: var proxy = new Object(); proxy = listBox1.SelectedValue;//определяем выбранный прокси-класс proxy.GetFiles();//ошибка: "object" не содержит определения для "GetFiles" и не был найден метод расширения "GetFiles" } Есть ли какое-нибудь решение, чтобы обойти эту проблему? Использую VS2010 .NET Framework 4.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2013, 12:02 |
|
|
start [/forum/topic.php?fid=19&msg=38349849&tid=1397059]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
79ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
5ms |
others: | 220ms |
total: | 384ms |
0 / 0 |