在WEB API服务器和Android客户端应用程序之间共享模型的最佳实践是什么?

uni*_*rn2 6 c# java android web-services asp.net-web-api2

我有一个Android应用程序,使用WEB API Web服务与.NET服务器通信.目前,我在服务器和客户端上传输对象.

Java类

public class UserAction {

    private String username;
    private String action;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在服务器端的C#类

  public class UserActionTO
  {
    public string Username { get; set; }
    public string Action { get; set; }
  }
Run Code Online (Sandbox Code Playgroud)

我希望在两个应用程序之间共享这些模型.

我发现这个问题讨论分享类型,但我的情况有点不同.我应该在Web API服务和它的客户端之间共享类型吗?还有什么其他选择?

我正在考虑创建一个C++ DLL,我的android应用程序和C#应用程序都可以使用它.这是我最好的选择吗?

编辑 我正在使用JSON传输数据

chr*_*ke- 3

最好的选择是使用标准的平台无关格式(通常是 JSON 或 XML)。这为您提供了极大的自由,可以按照您希望的方式改变客户端和服务器,并使开发和测试变得更加容易,因为您可以轻松检查或生成内容。

如果您询问一种在多个端点上表示内存中内容的简单机制,那么创建一个包含这些 DTO 和一些实用程序的“客户端 SDK”(许多在线服务分别针对多种编程语言发布它们)是完全合理的并使用适当的一个服务器端。一般来说,过于聪明并做一些诸如放入本机代码之类的事情并不是一个好主意;使用适当的语言保存 DTO 代码(例如 Android 的 Java,或者如果使用 Xamarin,则可能是 C#)。