如何在WP7和Azure项目之间共享模型

时间:2012-08-10 01:42:41

标签: windows-phone-7 mvvm azure

我有一个WP7项目,它将在Azure中调用REST Web服务(MVC4 WebApi)。

我的WP7项目有模型,它序列化为JSON,然后发送到Web服务。

Web服务对从WP7发送的数据进行反序列化,并在将模型保存到Azure表存储之前再次实例化模型。

如何在项目之间共享Model类?现在我只是复制cs文件,如果我对模型进行更改,我必须更新两个集合。我希望能从两个项目中引用一个简单的类库项目,但WP7无法处理。

我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:2)

这个问题有很多解决方案:

  • 您可以使用T4模板读取实体并生成WP7项目的类,该项目仅包含对象的属性,而不参考表存储细节(如TableStorageEntity):http://weblogs.asp.net/cibrax/archive/2009/03/11/code-generation-with-t4-an-entities-to-dto-example.aspx

  • 您可以将实体拆分为2个文件,一个具有TableStorage特性,如TableStorageEntity,另一个文件仅包含实体的属性(为此使用部分类)。然后,您可以添加仅包含WP7项目as a link中的属性的文件。

  • 手动创建一个DTO(或任何你称之为)的类,并使用类似AutoMapper的东西在DTO和TableStorage实体之间进行映射。将DTO存储在portable library中,以便各种项目都可以使用它。在我看来,这是最好的解决方案,因为您不希望将您的实体完全暴露给“外部世界”。一个例子是用户列表。您不希望返回所有字段,包括密码,哈希...和其他敏感信息。最好有一个单独的类,它只包含你想在外部公开的信息。