2010-01-09 2 views
5

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

ответ

4

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

http://xml-rpc.net/

+0

Phil - вам больше вводить информацию о том, как это сделать? – IEnumerator

1

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

+0

и ............. – kenny

2

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

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

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

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

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

1

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

http://tech-journals.com/jonow/2012/01/25/implementing-xml-rpc-services-with-asp-net-mvc

7

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 на службу и начните звонить.