ASP.NET Web Api 實踐系列(一)自我寄宿

來源:互聯網
上載者:User

標籤:

    從今天開始,研究ASP.NET Web Api(以下有時會簡稱Web Api)。我會寫一個實踐系列專題,不一定成理論體系,只是遇到問題或心得,記下來。爭取用一段較長的時間對ASP.NET Web Api有個較深入的理解。這裡我是使用VS2013整合式開發環境,如果版本不夠,可以用NuGet去下載Web Api相關dll。

    今天討論自我寄宿Web Api。

    Web Api繼承了WCF的優點,除了常規的Web寄宿(IIS)外,還可以在NET的控制台、WinForms等程式中寄宿。這裡講一講在控制台中寄宿Web Api。

    一、編寫Api方法

    建立C#類庫項目MyControllers,引用System.Web.Http.dll。

    編寫Api類檔案MyValuesController.cs:

using System.Web.Http;namespace MyControllers{    public class MyValuesController : ApiController    {        public string Get()        {            return "OK";        }    }}
    二、添加寄宿項目

    添加一個控制台項目MyConsoleApiSvr,引用MyControllers項目,同時引用以下4個Web Api相關DLL:

  • System.Net.Http.dll
  • System.Web.Http.dll
  • System.Net.Formatting.Http.dll
  • System.Web.Http.SelfHost.dll

    主程式如下:

 1 using System; 2 using System.IO; 3 using System.Web.Http; 4 using System.Web.Http.SelfHost; 5 using System.Reflection; 6  7 namespace MyConsoleApiSvr 8 { 9     class Program10     {11         static void Main(string[] args)12         {13             Console.Title = "Api Service";14 15             var apiDll = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MyControllers.dll");16             Assembly.LoadFrom(apiDll);17             var config = new HttpSelfHostConfiguration("http://localhost:4588");18             config.Routes.MapHttpRoute(19                 name: "DefaultApi",20                 routeTemplate: "api/{controller}/{id}",21                 defaults: new {id = RouteParameter.Optional});22             using (var svr = new HttpSelfHostServer(config))23             {24                 svr.OpenAsync().Wait();25                 Console.WriteLine("API服務已開啟!");26                 Console.ReadLine();27             }28             29         }30     }31 }

    以上代碼可以分為幾個步驟:

  1. 載入包含Api控制器方法的DLL。(第16行)
  2. 添加服務配置,並指定服務寄宿地址。(第17行)
  3. 添加全域預設路由配置。(第18-21行)
  4. 定義並開啟服務。(第22、24行)
    三、運行服務並測試

    運行Web Api服務:

    並在瀏覽器中測試:

ASP.NET Web Api 實踐系列(一)自我寄宿

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.