我知道有一个.NET库可以使用XML-RPC,但是是否可以在ASP.NET MVC环境中使用呢?
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();
}
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add(new Route("api/statename", new StateNameRouteHandler()));
// ...
}
通过将浏览器指向处理程序的URL,例如在从Visual Studio运行时类似于http://localhost:33821/api/statename的URL,检查所有内容是否正常工作。然后,您应该会看到服务的自动生成帮助页面。如果一切正常,则将XML-RPC客户端指向该服务并开始进行调用。
Cook Computing的xml-rpc.net库可以与任何ASP.NET项目一起使用,包括ASP.NET MVC。
如果它可以在.NET上运行,那么它也可以在ASP.NET MVC上运行。ASP.NET MVC环境只是建立在.NET Framework之上的一层,因此任何你可以用.NET构建的东西都可以在ASP.NET MVC应用程序中使用。
http://tech-journals.com/jonow/2012/01/25/implementing-xml-rpc-services-with-asp-net-mvc
我想添加一个名为“XmlRpcMvc”的项目,这个项目我在2011年就开始了。你可以在GitHub上找到源代码。随意分叉或者做任何你想做的事情 ;)
它也可以通过NuGet获取:Install-Package XmlRpcMvc (MetaWeblog示例)