【发布时间】: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