由于项目需要创建一个寄宿于控制台程序的WebAPI,看了一通资料,终于完成了,下面记录一下过程,备忘吧。
如果需要补充asp.net webApi的基础知识请查看微软官方知识网站:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api
1.打开VS2013,新建一个空的控制台程序名为ConsoleApp。
2.为该项目添加一个创建SelfHost WebAPI 必须的NuGet安装包,方法是右键项目下的References,选择“Manage NuGet Packages...”,在打开的NuGet管理界面的搜索框中输入“SelfHost”,然后选择“Microsoft ASP.NET Web API 2.2 Self Host”,点击安装,如图所示,在安装的过程中会弹出一个对话框询问你是否许可安装一些依赖的类库,我们选择同意,然后就安装完成了。
3.为项目添加一个类文件命名为“Product.cs”。
类的内容如下:
public class Product
{
public string Name { get; set; }
public string Price { get; set; }
}
4. 为项目添加一个类文件命名为“ProductsController.cs”,让其继承ApiContoller(需要添加System.Web.Http的命名空间)。
ProductsController.cs的内容如下:
public class ProductsController:ApiController
{
static List<Product> products = new List<Product>() {
new Product(){Name="product1",Price="2.55"},
new Product(){Name="product2",Price="2.3"}
};
public IEnumerable<Product> Get()
{
return products;
}
}
5.最后一步就是在控制台程序的Main函数中添加如下代码即可了(要添加system.web.Http和system.web.Http.SelfHost的命名空间)。
static void Main(string[] args)
{
var config = new HttpSelfHostConfiguration("http://localhost:8080");
config.Routes.MapHttpRoute(
"API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });
using (HttpSelfHostServer server = new HttpSelfHostServer(config))
{
server.OpenAsync().Wait();
Console.WriteLine("Press Enter to quit.");
Console.ReadLine();
}
}
<span style="white-space: pre;"> </span>到此为止整个项目就完成了,但是一运行就会发现有异常,呵呵,忘记说了,必须要以管理员身份运行此程序才行,如果用VS调试运行也必须要以管理员身份
启动VS才能进行调试运行的。下面我们就打开Chrome浏览器实验一把,结果如下,说明成功了。