首选的WCF实现是使用程序集共享和ChannelFactory - Contract 的单个实例意味着任何服务更改只需要在一个地方进行,没有代理可以更新或维护等 .
我想用Silverlight实现ChannelFactory . 我已经有足够的RIA域名服务等 .
我的Silverlight应用程序只能引用Silverlight程序集 - 足够公平 . 所以我将 ServiceContract
接口放在Silverlight程序集中,并从我的服务器和客户端引用它 .
问题是当我去运行我的服务器(在这种情况下是IIS托管)时,我得到了
无法加载文件或程序集'System.ServiceModel,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 该系统找不到指定的文件 .
包含 ServiceContract
的Silverlight程序集使用与我的服务器使用的不同版本的 System.ServiceModel
(使用.NET 4.0)构建 . 我怎样才能做到这一点?
2 回答
这与silverlight和.net的不兼容性是部分人为的,如果您知道如何操作,可以解决 .
http://www.netfxharmonics.com/2008/12/Reusing-NET-Assemblies-in-Silverlight
只是,
使用Portable Class Libraries;