0

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

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

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

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

我该怎么办?

谢谢!

4

1 回答 1

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 项目中的属性的文件添加为链接

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

于 2012-08-10T06:05:24.253 回答