【问题标题】:WCF Serialization of POCOsPOCO的WCF序列化
【发布时间】:2015-06-25 15:32:01
【问题描述】:

我正在重写 MVVM 应用程序的一部分,以便 WCF 服务位于 ViewModel 和 Model 之间。

我知道我需要将数据库交互代码从 VM 移动到服务,然后重写剩余的 VM 以与服务代理对象和服务而不是模型进行交互。

WCF 的服务引用生成的代理类是可怕的,虽然 - 都附加了“k_BackingField”。我发现这个链接 (http://www.integratedwebsystems.com/wcf-data-contracts-and-k__backingfield-property-naming/) 似乎提供了一种解决方法,您可以在其中装饰类以显式地向序列化程序提供信息,而不是让它推断。我为我正在使用的课程做了这个,它对服务参考没有任何影响。存在完全相同的奇怪字段名称等。

如何从我的 POCO 代理中删除“k_BackingField”?我希望我可以反序列化回相同的 POCO 模型类,而不是服务引用级代理,所以如果这是一个选项,我会更喜欢。

如果这是相关的,以下是有关设置的一些详细信息: - 模型是代码优先的 EF6(最新)。 - 模型将存储库模式与带有类型参数的通用存储库一起使用。 - WCF 服务可以直接访问模型项目并在其代码中使用它。 - VM 可以直接访问模型项目并在其代码中使用(?)(正在重写)它。 - VM 具有通过 VS UI 完成的对 WCF 服务的服务引用。

【问题讨论】:

  • 您在使用WCF OData 和EF 吗?这是您应该进行 EF 和 WCF 交互的首选方式。
  • 如果您将此添加为答案,我会接受它作为答案,因为这完全绕过了我的问题。

标签: c# wcf serialization


【解决方案1】:

实体框架不建议混合使用传统的 WCF 和 EF,您会遇到导航属性的问题,就像您发现的那样。他们建议您改用WCF Data ServicesHere is a tutorial 来自数据服务网站,让您开始。

【讨论】:

    猜你喜欢
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多