假设我有一个使用SignalR的Instant Messenger服务器。我想向包含User
自定义对象集合的自定义对象广播一个ContactList
到所有连接的可能位于各种平台上的客户端。通过signalR发送自定义对象到跨平台的客户端
如何在服务器端打包这些自定义对象以允许java,objective c和.net客户端将它们映射回这些类的副本?我假定某种序列化,但不想为每个客户端语言编写一个“解析器”,以重新构建我可能要使用的每个不同的自定义对象。我有更好的选择吗?
假设我有一个使用SignalR的Instant Messenger服务器。我想向包含User
自定义对象集合的自定义对象广播一个ContactList
到所有连接的可能位于各种平台上的客户端。通过signalR发送自定义对象到跨平台的客户端
如何在服务器端打包这些自定义对象以允许java,objective c和.net客户端将它们映射回这些类的副本?我假定某种序列化,但不想为每个客户端语言编写一个“解析器”,以重新构建我可能要使用的每个不同的自定义对象。我有更好的选择吗?
以REST风格暴露您的对象将允许其他语言使用它们。只要您公开的所有对象都是可序列化的,只要它们自己可以执行REST请求,那么调用语言是什么并不重要。 WCF/Web API处理这很好。
如果您使用SignalR,那么格式为JSON。
SignalR技术上与JSON现在在其体系结构(即IJsonSerializer
和IJsonValue
)中默认用于序列化,并且默认使用JSON.NET。所以只要你的对象可以被JSON.NET序列化,并且只要其他平台支持以某种方式解析JSON(即使它是简单的文本解析),你也应该很好。
我想补充一点,如果您希望通过电线自带的JSON自动反序列化到各种平台中的对象中,您可以使用Xamarin创建一个PCL(可移植类库)以在任何地方运行C#。看看http://xamarin.com/csharp。
我不明白这个答案是如何应用的,因为这是一个关于SignalR而不是REST请求/响应的问题。 – 2012-07-27 17:51:35