说我有如下的界面,我想我的服务器(一个普通的web服务)和我的客户(一个Silverlight 2.0的应用程序)之间共享:共享服务接口,并在Silverlight模型中,使用WCF
public interface ICustomerService
{
Customer GetCustomer(string name);
}
我的Web服务实现了这个接口,并引用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应用程序 引用