是否有用于发送/接收IIS以外的JSON的.NET解决方案?

时间:2010-06-29 13:46:10

标签: c# .net json web-services

我基本上需要的是一个小型控制台应用程序,它可以侦听端口80,并能够放置JSON个对象。

  • 从JSON客户端接收值类型,对象和List<T>(或数组)并将其转换为.NET
  • 将值类型,对象和List<T>发送到客户端
  • 将一些信息输出到控制台

性能不是问题,因为我预计每小时会有20到30个请求。 我不希望IISCassini Web server作为客户端的要求。只有我的控制台应用程序和依赖项。

我已经尝试了servicestack.net看起来非常有前途,并且有一个控制台主机的示例。但是我没有设法从控制台主机(只有XML)中获取JSON。

欢迎任何有关如何使用servicestack.net或替代品的想法。

顺便说一句:客户端将是Android手机,因为我目前的方法IIS + WDSL + kSOAP 2(在手机上)造成的麻烦比它解决的更多,我真的想尝试一下轻量级独立JSON解决方案。

3 个答案:

答案 0 :(得分:3)

也许我错了,但我想你可以使用托管在控制台应用程序中的WCF

答案 1 :(得分:3)

Kayak项目几乎完全符合您的要求。它非常轻巧,非常强大。查看一些示例(直接从项目页面获取):

public class PostAPI
{
    [Path("/widgets")]
    public Widget[] GetWidgets()
    {
        return Widget.GetAll();
    }

    [Verb("POST")]
    [Path("/widgets")]
    public void CreateWidget([RequestBody] Widget w)
    {
        w.Created = DateTime.UtcNow;
        w.Create();
    }
}

public class Widget
{
    public string Author;
    public string Text;
    public string Created;

    // (Methods would be here...)
}

它可以在JSON对象和CLR对象之间自动序列化和反序列化,并接受路由以及POSTsGETs。最后,它包含一个内置服务器,您可以轻松地将其投入控制台应用程序。

答案 2 :(得分:1)

您可以在应用程序中使用HttpListener来处理HTTP次请求。您必须自己处理JSON序列化,但这可能不是问题吗?

根据您使用的框架版本,您可以使用内置的JSON序列化支持,也可以使用Json.NET库来执行此操作。在任何一种情况下,都应该很容易检测到请求并返回JSON响应。