Есть ли решение .NET для отправки / получения JSON, кроме IIS? - PullRequest
0 голосов
/ 29 июня 2010

Что мне в основном нужно, так это небольшое консольное приложение, которое прослушивает порт 80 и способно размещать JSON объекты вокруг.

  • Получение типов значений, объектов и List<T>(или массив) из клиента JSON и преобразование их в .NET классы
  • Отправка типов значений, объектов и List<T> клиенту
  • Вывод некоторой информации вconsole

Производительность не является проблемой, поскольку я ожидаю около 20-30 запросов в час.Я не хочу, чтобы IIS или веб-сервер Cassini был требованием на стороне клиента.Только мое консольное приложение и зависимости.

Я уже пробовал servicestack.net , который выглядит очень многообещающе и имеет пример для хоста консоли.Как бы то ни было, мне не удается вывести JSON из хоста консоли (только XML).

Любые идеи о том, как использовать servicestack.net или альтернативы, приветствуются.

Кстати: клиентбудет телефоном Android, и поскольку мой нынешний подход IIS + WDSL + kSOAP 2 (на телефоне) доставляет больше проблем, чем решает, я действительно хочу попробовать легкое автономное решение JSON.

Ответы [ 3 ]

3 голосов
/ 29 июня 2010

Проект 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 объектами и принимать маршруты, а также оба POST и GET .Наконец, он включает в себя встроенный сервер, который вы можете легко добавить в консольное приложение.

3 голосов
/ 29 июня 2010

Возможно, я ошибаюсь, но я полагаю, вы могли бы использовать WCF , размещенный в консольном приложении.

1 голос
/ 29 июня 2010

Вы можете использовать HttpListener для обработки HTTP запросов в вашем приложении.Вам придется самостоятельно обрабатывать сериализацию JSON , но это может не быть проблемой?

В зависимости от используемой версии фреймворка вы можете использовать либо встроенную поддержку сериализации JSON, либоВы можете использовать библиотеку Json.NET для этого.В любом случае должно быть легко обнаружить запросы и вернуть ответ JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...