我有一个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;
}
}
服务器端的我的C#类
public class UserActionTO
{
public string Username { get; set; }
public string Action { get; set; }
}
我希望在两个应用程序之间共享这些模型。
我发现这个问题讨论分享类型,但我的情况有点不同。 SlidingTabStrip
我正在考虑创建一个C ++ DLL,我的android应用程序和C#应用程序都可以使用它。这是我最好的选择吗?
修改 我正在使用JSON传输数据
答案 0 :(得分:2)
最佳选择是使用标准的平台中立格式(通常是JSON或XML)。这为您提供了以任何方式改变客户端和服务器的巨大自由,并使开发和测试更容易,因为您可以轻松地检查或生成内容。
如果您要问一个简单的机制来在多个端点上表示内存中的内容,那么创建一个"客户端SDK"是完全合理的。 (许多在线服务发布它们,每个都有多种编程语言),它们有这些DTO,也许还有一些实用程序,并使用适当的服务器端。一般来说,过分聪明并做一些像本地代码这样的事情并不是一个好主意;将DTO的代码保存在适当的语言中(例如Java for Android,或者如果使用Xamarin则可能是C#)。
答案 1 :(得分:2)
由于您已经在使用JSON作为数据,我建议您在.NET中编写一次并创建示例结果JSON对象。然后使用http://www.jsonschema2pojo.org/创建您的POJOS,它甚至会包含生成的注释,以便您知道不要修改该类。
另一个优点是你可以使用jackson或GSON注释样式对其进行格式化,以便轻松地序列化/反序列化对象。
如果你想发疯,你可以用JSON建模一切,然后有一个脚本使用http://json2csharp.com/为你创建你的.NET和http://www.jsonschema2pojo.org/ Java POJO。但我不确定这是值得的麻烦:)