gpt4 book ai didi

.net - 在 Silverlight 和 "plain vanilla".Net 之间共享程序集

转载 作者:行者123 更新时间:2023-12-04 15:28:29 25 4
gpt4 key购买 nike

我使用一些通用类作为数据容器,并使用它们将数据传入和传出 wcf 服务。由于 WCF 将客户端的通用名称转换为名为“ListOfBlah231546797646”之类的类的方式,我将对真实程序集的引用添加为“KnownType”。

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

事实证明,Silverlight 有它自己的一组二进制文件,所有都标记为版本 2.0.5.0。这些不在服务的 GAC 中,因此会引发异常。

因此,我无法从我的服务代码中引用我的“Silverlight Assembly”。有什么办法可以解决这个问题,使这两种风格在序列化时交叉兼容?

这个问题很相似,但没有一个答案有帮助。有任何想法吗?
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 才能在其他项目中更新。
  • 关于.net - 在 Silverlight 和 "plain vanilla".Net 之间共享程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667686/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com