XML-RPC в ASP.NET MVC - PullRequest
       5

XML-RPC в ASP.NET MVC

5 голосов
/ 09 января 2010

Я знаю, что для .NET есть библиотека для использования XML-RPC, но кто-нибудь знает, можно ли ее использовать в среде ASP.NET MVC или нет?

Ответы [ 6 ]

7 голосов
/ 01 апреля 2012

XML-RPC.NET можно использовать с ASP.NET MVC.

Определите интерфейс для вашей службы XML-RPC, например:

using CookComputing.XmlRpc;

public interface IStateName
{
  [XmlRpcMethod("examples.getStateName")]
  string GetStateName(int stateNumber);
}

Реализовать услугу:

using CookComputing.XmlRpc;

public class StateNameService : XmlRpcService, IStateName
{
  public string GetStateName(int stateNumber)
  {
    if (stateNumber < 1 || stateNumber > m_stateNames.Length)
      throw new XmlRpcFaultException(1, "Invalid state number");
    return m_stateNames[stateNumber - 1];
  }

  string[] m_stateNames
    = { "Alabama", "Alaska", "Arizona", "Arkansas",
        "California", "Colorado", "Connecticut", "Delaware", "Florida",
        "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", 
        "Kansas", "Kentucky", "Lousiana", "Maine", "Maryland", "Massachusetts",
        "Michigan", "Minnesota", "Mississipi", "Missouri", "Montana",
        "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", 
        "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma",
        "Oregon", "Pennsylviania", "Rhose Island", "South Carolina", 
        "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", 
        "Washington", "West Virginia", "Wisconsin", "Wyoming" };
}

Реализация собственного обработчика маршрута:

using System.Web;
using System.Web.Routing;

public class StateNameRouteHandler : IRouteHandler
{
  public IHttpHandler GetHttpHandler(RequestContext requestContext)
  {
    return new StateNameService();
  }
}

Зарегистрировать пользовательский маршрут в global.asax.cs:

public static void RegisterRoutes(RouteCollection routes)
{
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  routes.Add(new Route("api/statename", new StateNameRouteHandler()));

  // ...

}

Убедитесь, что все работает, указав в браузере URL-адрес обработчика, например, что-то вроде http://localhost:33821/api/statename в этом случае при запуске из Visual Studio. Затем вы должны увидеть автоматически сгенерированную страницу справки для службы. Если это нормально, тогда направьте свой XML-RPC-клиент на службу и начните звонить.

4 голосов
/ 09 января 2010

Библиотеку Cook Computing xml-rpc.net можно использовать с любым проектом ASP.NET, включая ASP.NET MVC.

http://xml -rpc.net /

2 голосов
/ 09 января 2010

Ответ выше верен - он будет работать (вы можете просто развернуть конечную точку XML RPC в приложении MVC и вызвать ее напрямую).

Если, однако, вы имеете в виду, работает ли он с маршрутизацией MVC и действиями контроллера, то я боюсь, что ответ «не без большой работы». Хорошо известная библиотека XML RPC (не так ли?) Основана на чем-то похожем на технологию asmx.

Существует также компонент WCF XML RPC (я думаю, это более быстрое и перспективное решение), о котором я написал о в контексте написания бэкенда Live Writer. Но это также не будет напрямую интегрировано с маршрутизацией MVC и действиями контроллера.

Хотя теоретически вы можете написать ActionFilters, пользовательскую фабрику контроллеров, ModelBinder и (возможно) еще что-то, чтобы обеспечить результаты XML Rpc и т. Д .; вам лучше просто выбрать реализацию XML RPC и вызвать ее напрямую.

Не уверен, добавил ли это что-нибудь полезное:)

1 голос
/ 13 марта 2012

Я хочу добавить проект под названием «XmlRpcMvc», который я начал еще в 2011 году. Вы можете найти исходный код на GitHub . Не стесняйтесь раскошелиться или делать все, что вы хотите;)

Он также доступен через NuGet: Install-Package XmlRpcMvc ( Образец MetaWeblog )

1 голос
/ 25 января 2012

Я пытался найти решение для интеграции XML-RPC с MVC, но не смог найти никого, кто бы это сделал, поэтому я сделал это сам, реализовав собственный маршрут, фильтр пользовательских действий (для преобразования xml- параметры rpc к параметрам действия) и результат настраиваемого действия (для преобразования ответа обратно в действительный ответ xml-rpc). Подробнее здесь:

http://tech -journals.com / jonow / 2012/01/25 / реализации в XML-RPC-сервисов с-Asp-нетто-Mvc

1 голос
/ 09 января 2010

Если он работает с .NET, он работает с ASP.NET MVC. Среда ASP.NET MVC - это просто слой поверх .NET Framework, поэтому в приложении ASP.NET MVC можно использовать все, что можно построить с помощью .NET.

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