Допустим, у меня есть следующий интерфейс, которым я хочу поделиться между моим сервером (обычная веб-служба) и моим клиентом (приложение silverlight 2.0):
public interface ICustomerService
{
Customer GetCustomer(string name);
}
Мой веб-сервис реализует этот интерфейс и ссылается на библиотеку классов, в которой определен тип Customer
.
Обычно, если вы хотите использовать эту услугу из клиента WCF, например, приложения winforms, вы можете поделиться своей моделью сборки и интерфейсами контракта на обслуживание. Затем, используя ChannelFactory
, вы можете динамически создать прокси-сервер, который реализует интерфейс вашего сервиса. Что-то вроде:
ICustomerService myService = new ChannelFactory<ICustomerService>(myBinding, myEndpoint);
Customer customer = myService.GetCustomer("romain");
Я в основном хочу сделать то же самое, но из приложения Silverlight 2.0. Серебряный свет ChannelFactory
, похоже, не действует как другой ...
Вы знаете, возможно ли это?
Примечание. Поскольку приложение Silverlight может ссылаться только на проекты Silverlight, у меня есть:
Две версии MyModel.dll, которые содержат Customer
тип:
- Один скомпилированный целевой .NET Framework 3.5, на который ссылается мой проект веб-службы
- Еще одна скомпилированная целевая среда silverlight 2.0, на которую ссылается мое приложение silverlight
Две версии MyServicesContracts.dll, которые содержат ICustomerService
интерфейс:
- Один скомпилированный целевой .NET Framework 3.5, на который ссылается мой проект веб-службы
- Еще одна скомпилированная целевая среда silverlight 2.0, на которую ссылается мое приложение silverlight