728x90
반응형
728x170
▶ Program.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using TestProject.Data;
using TestProject.Models;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
public class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main(argumentArray)
/// <summary>
/// 프로그램 시작하기
/// </summary>
/// <param name="argumentArray">배열 인자</param>
public static void Main(string[] argumentArray)
{
IHost host = CreateHostBuilder(argumentArray).Build();
using(IServiceScope scope = host.Services.CreateScope())
{
IServiceProvider serviceProvider = scope.ServiceProvider;
try
{
TestData.Initialize(serviceProvider);
}
catch(Exception exception)
{
ILogger<Program> logger = serviceProvider.GetRequiredService<ILogger<Program>>();
logger.LogError(exception, "데이터베이스에 데이터 추가시 에러가 발생했습니다.");
}
}
host.Run();
}
#endregion
#region 호스트 빌더 생성하기 - CreateHostBuilder(argumentArray)
/// <summary>
/// 호스트 빌더 생성하기
/// </summary>
/// <param name="argumentArray">인자 배열</param>
/// <returns>호스트 빌더</returns>
public static IHostBuilder CreateHostBuilder(string[] argumentArray) =>
Host.CreateDefaultBuilder(argumentArray)
.ConfigureAppConfiguration
(
(builderContext, configuration) =>
{
}
)
.ConfigureWebHostDefaults
(
builder =>
{
builder.ConfigureServices
(
services =>
{
services.AddDbContext<DatabaseContext>(options => options.UseInMemoryDatabase("TestDB"));
services.AddControllersWithViews();
}
)
.Configure
(
app =>
{
ILoggerFactory loggerFactory = app.ApplicationServices.GetRequiredService<ILoggerFactory>();
ILogger<Program> logger = loggerFactory.CreateLogger<Program>();
IWebHostEnvironment environment = app.ApplicationServices.GetRequiredService<IWebHostEnvironment>();
IConfiguration configuration = app.ApplicationServices.GetRequiredService<IConfiguration>();
if(environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints
(
endpointRouterBuilder =>
{
endpointRouterBuilder.MapControllers();
}
);
}
);
}
);
#endregion
}
}
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요