当前位置: 首页 > news >正文

网站代理备案表铁岭做网站公司哪家好

网站代理备案表,铁岭做网站公司哪家好,怎么查网站的域名备案价格,做家具有那个网站在上一篇文章《Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器》中#xff0c;我们已经了解了Raspkate这一轻量型Web服务器#xff0c;今天#xff0c;我们再一起了解下如何基于Raspkate实现简单的RESTful API。 模块 首先让我们了解一下“模块”的概念。Raspkate的… 在上一篇文章《Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器》中我们已经了解了Raspkate这一轻量型Web服务器今天我们再一起了解下如何基于Raspkate实现简单的RESTful API。 模块 首先让我们了解一下“模块”的概念。Raspkate的模块包含了一组能够提供完整业务功能的HTTP处理器Handler例如在Raspkate的源代码库中默认提供了两个模块Default和RaspberryPi它们分别位于两个不同的C#项目中 Raspkate.Modules.DefaultRaspkate.Modules.RaspberryPi Default模块包含了一个标准的静态文件访问服务/处理器以及一个能够读取并返回服务器信息的RESTful API控制器而RaspberryPi模块则提供了一个访问树莓派信息页静态文件的处理器以及一个读取树莓派信息的RESTful API控制器。当然在这里静态文件访问处理都是由FileHandler负责而RESTful API的处理则由ControllerHandler完成。虽然这两个模块使用了相同类型的Handler但它们所专注的业务功能完全不同而且它们是相互隔离独立执行的。 Raspkate中每个模块都被存放于modules目录下的某个子目录中在Raspkate服务启动时会扫描modules目录下的所有程序集定位所有继承于RaspkateModule类的子类并根据类型定义对Handler进行初始化然后注册到Raspkate服务中以便这些Handler能够为HTTP请求提供服务。当然这些模块也可以放在其它目录下但这就需要修改Raspkate服务的配置文件RaspkateService.exe.config把模块所在的目录添加到modules节点下例如 1 2 3 4 5 6 7 8 9 10 11 12 1 14 ? xml  version1.0 encodingutf-8 ? configuration    configSections      section  nameraspkateConfiguration typeRaspkate.Config.RaspkateConfiguration, Raspkate/    / configSections    raspkateConfiguration  xmlnsurn:Raspkate.Config prefixhttp://127.0.0.1:9023/      modules        add  pathmodules/        add  pathd:\\test relativefalse /      / modules    / raspkateConfiguration / configuration 在模块的注册类型中也就是继承于RaspkateModule类的子类中只需要返回该模块能够提供的Handler实例即可。接下来让我们一起看看如何开发一个自己的模块并通过注册ControllerHandler向调用者提供RESTful API服务。 案例计算器 最简单的不过就是计算器运算加、减、乘、除。那么最最简单的就是计算两个整数的和好吧就以这个为例开始我们的RESTful API开发之旅。 首先打开Visual Studio 2013新建一个C#类库Class Library项目项目命名为RaspkateCalculatorModule注意.NET Framework至少选择4.5.2以上老版本的Framework除了2.0以外Microsoft都不再官方支持了。成功创建项目后添加对Raspkate.dll的引用。 然后在这个项目中新建一个名为CalculatorController的类代码如下 1 2 3 4 5 6 7 8 9 1 [RoutePrefix( calc )] public  class  CalculatorController : RaspkateController {      [HttpGet]      [Route( add/{a}/{b} )]      public  int  Add( int  a, int  b)      {          return  a b;      } } 接着在这个项目中新建一个名为Module的类代码如下 1 2 3 4 5 6 7 8 9 10 1 internal  sealed  class  Module : RaspkateModule {      public  Module(ModuleContext context)          : base (context)      { }      protected  override  IEnumerableIRaspkateHandler CreateHandlers()      {          yield  return  new  ControllerHandler( CalculatorController ,              new  [] { typeof (CalculatorController) });      } } OK万事俱备只欠东风啦回到Raspkate中将RaspkateService.exe.config稍微改动一下将该模块的输出目录添加到modules节点中即可直接启动RaspkateService.exe程序了 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 30 31 32 33 34 35 36 37 38 ? xml  version1.0 encodingutf-8 ? configuration    configSections      section  nameraspkateConfiguration typeRaspkate.Config.RaspkateConfiguration, Raspkate/      section  namelog4net typelog4net.Config.Log4NetConfigurationSectionHandler, log4net/    / configSections    raspkateConfiguration  xmlnsurn:Raspkate.Config prefixhttp://127.0.0.1:9023/      modules        add  pathmodules/        add  pathC:\Users\chenqn\Documents\visual studio 2013\Projects\RaspkateCalculatorModule\RaspkateCalculatorModule\bin\Debug relativefalse/      / modules    / raspkateConfiguration    log4net      appender  nameConsoleAppender typelog4net.Appender.ConsoleAppender        layout  typelog4net.Layout.PatternLayout          conversionPattern  value%utcdate{DATE} [%thread] %level %logger - %message%newline/        / layout      / appender      appender  nameFileAppender typelog4net.Appender.FileAppender        file  valuelogs/raspkate.log /        appendToFile  valuetrue /        lockingModel  typelog4net.Appender.FileAppenderMinimalLock /        layout  typelog4net.Layout.PatternLayout          conversionPattern  value%date [%thread] %level %logger - %message%newline /        / layout      / appender      root        level  valueINFO/        appender-ref  refConsoleAppender/        appender-ref  refFileAppender /      / root    / log4net    startup      supportedRuntime  versionv4.0 sku.NETFramework,Versionv4.5.2 /    / startup / configuration 启动程序后你可以在输出的日志中注意到CalculatorController已经被注册到ControllerHandler当中进而可以开始提供HTTP请求的服务了 请打开你的浏览器在地址栏中输入 1 http://127.0.0.1:9023/calc/add/12/30 那么你应该看到的是 看来Raspkate服务已经将计算结果返回给你了。怎么样使用Raspkate开发RESTful API是不是非常快捷接下来让我们看看更加有意思的特性。 案例计算器进阶 刚才我们的计算器还是太简单接下来我打算让这个计算器能够计算复数包括虚数部分的乘法。同学们是否还记得复数相乘的计算公式 OK也就是我们的RESTful API需要接收两个复数每个复数都要包含实数 r 和虚数 i 两个部分返回值也应该包含实数和虚数两个部分。那么我们的CalculatorController就可以写成这样 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [RoutePrefix( calc )] public  class  CalculatorController : RaspkateController {      [HttpGet]      [Route( add/{a}/{b} )]      public  int  Add( int  a, int  b)      {          return  a b;      }      [HttpPost]      [Route( mul )]      public  dynamic Multiplicity([FromBody] dynamic input)      {          var  a input.x.r; // 第一个数的实数部分          var  b input.x.i; // 第一个数的虚数部分          var  c input.y.r; // 第二个数的实数部分          var  d input.y.i; // 第二个数的虚数部分          return  new  { z new  { r a * c - b * d, i b * c a * d } };      } } 重新运行Raspkate服务打开能够发出HttpPost请求的测试客户端我用的是Fiddler看看我们的程序是否可以正确执行 测试成功RESTful API已经以JSON格式返回了我们需要的计算结果。 总结 从上面的演示可以看到Raspkate服务中RESTful API的实现沿用了类似微软ASP.NET Web API的编程习惯包括 Controller的编程模型ASP.NET Web API中使用ApiController作为基类此处使用RaspkateController作为基类Attribute RoutingHttpGet和HttpPost两种HTTP方法其它的暂未实现FromBody特性修饰符使得方法的某些参数可以直接从HTTP Post Body中取值对dynamic类型、匿名类型的支持 相比之下Raspkate服务所提供的RESTful API编程更为简单快捷。今后如果这部分的确有应用的话可以对整个结构作进一步完善。 相关文章  Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器在树莓派下安装Mono环境树莓派上安装mono和jexus运行ASP.NET程序树莓派2发布四核 CPU1G RAM 硬件升级不加价支持Windows 10 陈晴阳Sunny Chen2003年毕业于中南大学铁道校区。高级程序员系统分析员微软MVPVisual C#。cnblogs网名daxnet并打算以该名闯荡IT江湖。MicrosoftDynamics AX、Microsoft .NET/C#以及领域驱动设计DDD的狂热爱好者。 原文地址http://www.cnblogs.com/daxnet/p/5326992.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注 赞赏 人赞赏
http://www.huolong8.cn/news/275449/

相关文章:

  • 山西省建设招聘信息网站装饰设计图片
  • 网站建设开发公司推荐指数互联网建设企业网站
  • 购物网站修改文案靓号网建站
  • 网站怎么做音乐外链策划网站建设方案
  • 厦门网络公司网站哈尔滨制作企业网站
  • 怎么叫人做网站浙江中南建设集团有限公司
  • 白云区网站开发公司电话福田区南山区龙岗区
  • 唐山的做网站的企业视频弹幕网站怎么做
  • 如何提高网站的访问速度网站挂到国外服务器地址
  • 做网站推广怎么跟客户沟通单位网站用途类型
  • 网站没有备案是假的吗建网站企业
  • 总结企业网站建设的流程网站留言板怎么做php
  • 网站优化策略分析论文怎样做一个网站首页
  • 想学做网站学什么教程企业门户网站开发代码
  • 学校网站页面设计菜篮网网站开发技术
  • 德国 网站建设台州网站建设方案服务
  • 如何知道自己网站主机高科技公司网站模板
  • 电信网站备案查询网站开发团队工作总结
  • 做网站去哪找客户搭建网站软件
  • 做360手机网站快速排名软件密云网站建设
  • 潍坊网站制作小程序网站开发的论文怎么写
  • 商务网站开发工具字节跳动公司简介
  • 长春做网站的公司哪家好百度网站怎么建设
  • 个人网站设计模板下载域名可以做网站名吗
  • 企业网站建设兴田德润地址58同城泰安
  • 赣州网站优化制作wordpress 无法html
  • 企业网站建设的层次做网站招商需要具备什么
  • 德州金航网站建设百度发广告怎么发
  • 家居企业网站建设效果一个后台可以做几个网站
  • 南昌高端网站开发费用表服装网都有哪些网站