2010-01-09 12 views
5

Wiem, że istnieje biblioteka dla .NET do korzystania z XML-RPC - ale czy ktoś wie, czy można go używać w środowisku ASP.NET MVC czy nie?XML-RPC w ASP.NET MVC

Odpowiedz

4

biblioteka kucharz Computing xml-rpc.net może być używany z dowolnym projektem ASP.NET, w tym ASP.NET MVC.

http://xml-rpc.net/

+0

Phil - czy masz jeszcze więcej informacji na temat tego, jak to zrobić? – IEnumerator

1

Jeśli działa z .NET, działa z ASP.NET MVC. Środowisko ASP.NET MVC jest tylko warstwą na platformie .NET, więc wszystko, co można zbudować za pomocą .NET, można wykorzystać w aplikacji ASP.NET MVC.

+0

i ............. – kenny

2

Powyższa odpowiedź jest poprawna - zadziała (można po prostu wdrożyć punkt końcowy XML RPC w aplikacji MVC i wywołać go bezpośrednio).

Jeśli jednak masz na myśli to, że działa z routingiem MVC i działaniami kontrolera, obawiam się, że odpowiedź brzmi "nie bez dużego nakładu pracy". Dobrze znana biblioteka XML RPC (przez gotowanie jest to?) Opiera się na czymś podobnym do technologii ASMX.

Istnieje także komponent XML RPC WCF (szybszy i bardziej przyszłościowy), który uważam za jeden z następujących: I've written about w kontekście pisania zaplecza Live Writer. Ale to również nie będzie integrować bezpośrednio z routingiem MVC i działaniami kontrolera.

Choć możliwe, że teoretycznie można napisać ActionFilters, niestandardową Factory Controller, ModelBinder i (prawdopodobnie) więcej, aby dostarczyć wyniki XML Rpc itp .; Lepiej jest po prostu wybrać implementację XML RPC i wywołać ją bezpośrednio.

Nie wiem, czy ta dodała coś pożytecznego :)

1

starałem się znaleźć rozwiązanie dla integracji XML-RPC z MVC, ale nie mógł znaleźć nikogo, kto to zrobił, więc zrobiłem to sobie poprzez wdrożenie niestandardowych trasy, filtr niestandardowy akcja (aby przekonwertować parametry xml-rpc na parametry akcji) i wynik działania niestandardowego (aby przekonwertować odpowiedź z powrotem na prawidłową odpowiedź xml-rpc). Czytaj więcej tutaj:

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

7

XML-RPC.NET mogą być używane z ASP.NET MVC.

zdefiniować interfejs dla usługi XML-RPC, na przykład:

using CookComputing.XmlRpc; 

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

Wdrożenie usługi:

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" }; 
} 

zaimplementować obsługi niestandardowych trasach:

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

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

zarejestrować niestandardowa trasa w global.asax.CS:

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

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

    // ... 

} 

sprawdzić, czy wszystko działa, kierując przeglądarkę na adres URL obsługi, na przykład coś jak http://localhost:33821/api/statename w tym przypadku, gdy uruchomiony z Visual Studio. Powinieneś wtedy zobaczyć automatycznie wygenerowaną stronę pomocy dla usługi. Jeśli wszystko jest w porządku, skieruj klienta XML-RPC do usługi i zacznij nawiązywać połączenia.