在Silverlight和“普通香草”.Net之间共享集合

在Silverlight和“普通香草”.Net之间共享集合,第1张

概述我正在使用一些泛型类作为数据容器,并使用它们来传递数据到wcf服务和从wcf服务传递数据.由于WCF将客户端的通用名称变为名为“ListOfBlah231546797646”的类,我将实际程序集的引用添加为“KnownType”. Silverlight需要使用这些服务,但只能引用“silverlight程序集”.我已经将类移动到他们自己的“silverlight程序集”并且可以从silverli 我正在使用一些泛型类作为数据容器,并使用它们来传递数据到wcf服务和从wcf服务传递数据.由于WCF将客户端的通用名称变为名为“listofBlah231546797646”的类,我将实际程序集的引用添加为“KNownType”.

Silverlight需要使用这些服务,但只能引用“silverlight程序集”.我已经将类移动到他们自己的“silverlight程序集”并且可以从silverlight引用它们,但是当服务运行时,我在System.Runtime.Serialization程序集上得到“找不到引用的程序集”错误.

事实证明,Silverlight拥有自己的二进制文件集,所有二进制文件都标记为版本2.0.5.0.这些不在服务的GAC中,因此抛出异常.

因此,我不能从我的服务代码中引用我的“Silverlight程序集”.有什么方法可以解决这个问题,使两种口味在序列化时交叉兼容吗?

这个问题很相似,但没有一个答案有帮助.有任何想法吗?
similar question

解决方法 我在Silverlight和普通CLR之间共享代码的方式是使用C#项目的“添加为链接”功能.所以最终看起来像这样:

| Silverlightlib|   file1.cs|   file2.cs| Clrlib|   file1.cs <as link>|   file2.cs <as link>

然后VS工作正常,两组代码都被编译.烦人的部分是Silverlight框架没有排队的地方. (WCF有一些在SL中不存在的部分.)在这种情况下,您需要使用预处理器“#if SILVERliGHT”来使代码成为两个平台的目标.

到目前为止,这种方法运作良好.这样,我可以编写代码,使用VSTS进行测试,但仍然可以在同一来源的SL上工作.一些提示:

>始终从SL项目进行编辑 – 这样编辑器将限制为SL,以后您不会感到惊讶.>有时您必须关闭已打开的文件以便在其他项目中更新Intellisense.

总结

以上是内存溢出为你收集整理的在Silverlight和“普通香草”.Net之间共享集合全部内容,希望文章能够帮你解决在Silverlight和“普通香草”.Net之间共享集合所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1000991.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存