asp.net core執行個體教程之配置

來源:互聯網
上載者:User

Asp.Net Core-配置

  1. Asp.Net Core-配置

在這一章,我們將討論 ASP.NET Core項目的相關的配置。在方案總管中,您將看到 Startup.cs 檔案。如果你有以前版本的 ASP.NET的工作經驗,你可能希望看到一個 global.asax 檔案,您可以在其中編寫代碼,它是一個編寫程式啟動時立即執行的代碼的檔案。

  • 你可能也希望看到一個 web.config 檔案,該檔案包含您的應用程式執行所需的所有配置參數。

  • 在 ASP.NET Core中,那些檔案都沒了,取而代之的是 Startup.cs檔案.

  • Startup.cs裡面是一個啟動類檔案,並在該類中您可以配置您的應用程式甚至配置您的配置資源。

這裡是 Startup.cs 檔案中的預設實現代碼:

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging;  namespace FirstAppDemo {    public class Startup {       // This method gets called by the runtime.      // Use this method to add services to the container.       // For more information on how to configure your application,       // visit http://go.microsoft.com/fwlink/?LinkID=398940       public void ConfigureServices(IServiceCollection services) {       }               // This method gets called by the runtime. Use this method to configure       // the HTTP request pipeline.      public void Configure(IApplicationBuilder app, IHostingEnvironment env,          ILoggerFactory loggerFactory) {          loggerFactory.AddConsole();                     if (env.IsDevelopment()) {             app.UseDeveloperExceptionPage();          }           app.Run(async (context) => {             await context.Response.WriteAsync("Hello World!");          });       }    } }

在啟動類中,我們的大部分工作將設計有兩種方法。Configure 方法是構建HTTP處理管道的地方。

  • 這定義了應用程式如何響應請求。目前該應用程式只能說“Hello World!”如果我們希望該應用程式具有不同的行為,我們需要通過添加額外的代碼到這個Configure方法中來改變周圍的管道。

  • 例如,如果我們想要提供一個 index.html 檔案的靜態檔案,我們將需要在Configure方法中添加一些代碼。

  • 你也可以有一個錯誤頁面或Asp.Net Controller的異常請求的路由;這兩個情境還需要在這個配置方法中做一些工作。

  • 在啟動類中,您還將看到 ConfigureServices() 方法。這可協助您配置您的應用程式的組件。

現在,我們有一個硬式編碼字串“Hello World !”來響應每個請求。我們不希望每個請求都是硬式編碼字串,我們想從一些組件載入響應字串。

  • 其他組件可能會從資料庫載入文本,或從一個web服務或一個JSON檔案,我們不管這它是從什麼地方載入。

  • 我們會設定一個情境,這樣我們就沒有這個寫入程式碼字串了。

在方案總管中,按右鍵您的項目節點並選擇Add→New Item。

在左側邊窗格中,選擇Installed → Code,然後在中間窗格中,選擇JSON檔案。給這個檔案取名為AppSetting.json,並單擊Add按鈕如上面的。

讓我們在AppSettings中添加以下代碼。

{    "message": "Hello, World! this message is from configuration file..." }

現在我們需要從 Startup.cs 檔案訪問此訊息。這裡是 Startup.cs 檔案從 JSON 檔案閱讀上面的訊息的實現代碼。

using Microsoft.AspNet.Builder; using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration;  namespace FirstAppDemo {    public class Startup {       public Startup() {          var builder = new ConfigurationBuilder()               .AddJsonFile("AppSettings.json");          Configuration = builder.Build();       }        public IConfiguration Configuration { get; set; }               // This method gets called by the runtime.       // Use this method to add services to the container.       // For more information on how to configure your application,       // visit http://go.microsoft.com/fwlink/?LinkID=398940       public void ConfigureServices(IServiceCollection services) {       }               // This method gets called by the runtime.        // Use this method to configure the HTTP request pipeline.       public void Configure(IApplicationBuilder app) {         app.UseIISPlatformHandler();           app.Run(async (context) => {             var msg = Configuration["message"];             await context.Response.WriteAsync(msg);          });        }                 // Entry point for the application.       public static void Main(string[] args) =7gt; WebApplication.Run<Startup>(args);    } }

讓我們現在運行應用程式。一旦您運行該應用程式,它會產生下面的輸出。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.