Monotouch и WCF: разница между SVCUTIL.EXE и SLSVCUTIL.EXE и как избежать неподдерживаемого универсального ChannelFactory?

Я (снова и снова) пытаюсь использовать некоторые службы WCF в Monotouch. Первый подход: добавить веб-ссылку в Monodevelop не удалось. Он не может создать справочный файл. Затем я попробовал SVCUTIL.EXE и получил сообщение об ошибке, что общий ChannelFactory недоступен в Monotouch - я полагаю, потому что нет доступного отражения.

Затем я попробовал SLSVCUTIL.EXE из Silverlight 3 SDK. Это создает пространства имен для различных служб, которые отличаются от тех, что созданы с помощью SVCUTIL.EXE. Поскольку у меня уже много кода оболочки, мне нужно многое изменить.

Возникают следующие вопросы:

  • Могу ли я переопределить методы CreateChannel и возвращать специализированные каналы для каждой службы вместо того, чтобы зависеть от несуществующей универсальной версии, как предлагается в создаваемом исключении? Это означает исправление кода, созданного SVCUTIL.EXE.
  • Как создать канал в замещаемом методе? У меня только интерфейсы моих сервисов. Я погуглил и не нашел примеров.Как выглядит код, который должен быть написан в этом методе?
  • Мне совершенно непонятно: в чем разница между двумя служебными утилитами?
  • Если я решу проблему с пространством имен, будут ли заглушки, созданные с помощью Утилита Silverlight заставит мой проект работать, или он также пострадает от общей проблемы с каналом?
  • почему инструмент Silverlight может работать без динамической генерации кода? В чем разница в выводимом коде и какое преимущество имеет динамическая версия?
  • какая версия Silverlight поддерживается int MT. Могу ли я использовать инструмент версии 4 или это должна быть версия 3?
  • Поддерживает ли WCF в MT потоковую передачу, например загрузку больших файлов?
6
задан Krumelur 28 November 2011 в 10:36
поделиться