WebApi系列~自主宿主HttpSelfHost的实现
生活随笔
收集整理的這篇文章主要介紹了
WebApi系列~自主宿主HttpSelfHost的实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
回到目錄
宿主一詞我們不會陌生,它可以看作是一個基礎(chǔ)設(shè)施,它為一些服務(wù)和功能提供最底層的支持,如你的web應(yīng)用程序可以運行在iis或者apache上,而這兩個東西就是web應(yīng)用程序的宿主,而今天說的自主宿主SelfHost就是說,它可以自己去監(jiān)聽自己的服務(wù),如你可以把一個web應(yīng)用程序宿主到一個console控制臺程序上,或者把一個webApi宿主到一個console或者windowService上,這都是可以的。
一 需要添加一些程序集引用
二 代碼實現(xiàn)
#region Web Api監(jiān)聽
Assembly.Load("Lind.DDD.TestApi");? //手工加載某個api程序集的controllervar config = new HttpSelfHostConfiguration("http://localhost:3333");config.Routes.MapHttpRoute("default", "api/{controller}/{id}", new { id = RouteParameter.Optional });var server = new HttpSelfHostServer(config);server.OpenAsync().Wait();Console.WriteLine("Server is opened");#endregion
?三?? web api代碼
/// <summary>/// 測試webapi/// </summary>public class TestController : ApiController{// GET api/<controller>public IEnumerable<string> Get(){return new string[] { "value1", "value2" };}// GET api/<controller>/5public string Get(int id){return "value";}// POST api/<controller>public void Post([FromBody]Demo value){Thread.Sleep(10000);Logger.Core.LoggerFactory.Instance.Logger_Info(value.ToString());}// PUT api/<controller>/5public void Put(int id, [FromBody]string value){}// DELETE api/<controller>/5public void Delete(int id){}}public class Demo{public string appName { get; set; }public string url { get; set; }public override string ToString(){return string.Format("appName:{0},url:{1},datetime:{2}", this.appName, this.url, DateTime.Now);}}四?? 測試
回到目錄
轉(zhuǎn)載于:https://www.cnblogs.com/lori/p/4120428.html
總結(jié)
以上是生活随笔為你收集整理的WebApi系列~自主宿主HttpSelfHost的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。