- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
0 票否决
星星
1
我希望能够共享我的数据契约(Contract)(在 linq to entity 设计器中生成的类用 [DataContract] 属性装饰。
我正在尝试使用此处详述的架构:http://www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2并尝试使用此处详述的“添加为链接”方法在我的 silverlight 项目中引用我的接口(interface):http://www.netfxharmonics.com/2008/12/Reusing-NET-Assemblies-in-Silverlight
我遇到的问题是在我的 silverlight 项目中引用我的服务接口(interface)。
我的解决方案有以下项目:
ORM - 包含一个 Linq to Entities edmx 模型(命名空间:company.client.Service) - 其中的类用 DataContract 属性等装饰。
ServiceInterface - 包含接口(interface)(命名空间 company.client.Service)和对返回的类(客户等)的 ORM 的引用
Service - 包含服务接口(interface)(命名空间 company.client.Service)的实现,并引用 ServiceInterface 和类的 ORM。
ServiceHost - 仅包含 http://www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2 中推荐的 .svc 文件
WebSLHost - silverlight 应用程序的主机
Gui - silverlight GUI。
我希望所有项目都是标准的.net 程序集,当然除了 silverlight gui。
当我尝试将链接添加到我的服务接口(interface)文件(如 http://www.netfxharmonics.com/2008/12/Reusing-NET-Assemblies-in-Silverlight 中所示)时,它会给出一个编译错误,指出它找不到 ORM 并且无法识别我的实体类型。
我希望能够与我的服务和 silverlight 客户端共享 linq 到实体生成器生成的数据契约(Contract),所以如果有人有任何想法,我将不胜感激。
最佳答案
您正在尝试的内容仅适用于“完整”.NET 到“完整”.NET(或至少匹配);即便如此,它还是违反了 SOA 的规则……
数据契约的整个想法是你共享数据的形状,而不是实现。这意味着 Silverlight 不了解 EDMX 或一些更不寻常的 DataContract 属性(如回调)并不重要 - 数据仍然完好无损。
通过使用 mex 生成的类版本,您仍将拥有相同的基本数据行为 - 这是 WCF 与 Silverlight 的预期用例。所以只需使用服务引用。或者,您需要有一个位于 EDMX 和 WCF 之间的 DTO 类;只要 DTO 只使用 WCF 属性(但没有 EDMX)就应该没问题,但显然这会带来巨大的维护成本。我个人怀疑在最简单的情况下是否值得。
关于.net - 如何在 WCF 和 Silverlight 之间共享 Linq to Entities 数据契约(Contract),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/569819/
我是一名优秀的程序员,十分优秀!