728x90
.NET 8 WebApplication
을 기준으로 환경별 설정과 사용자별 설정 파일 병합을 적용한 실제 프로젝트 샘플입니다.
✅ 1. 프로젝트 구조 예시
MyApp/
├── Program.cs
├── appsettings.json
├── appsettings.Development.json
├── appsettings.Production.json
├── user.settings.json
├── user.{UserName}.json
✅ 2. Program.cs
전체 코드 (샘플)
using Microsoft.Extensions.Configuration;
var builder = WebApplication.CreateBuilder(args);
// 현재 환경 이름 감지 (Development, Production 등)
var env = builder.Environment;
string userName = Environment.UserName;
// 구성 파일 병합
builder.Configuration
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
.AddJsonFile("user.settings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"user.{userName}.json", optional: true, reloadOnChange: true);
// 테스트용 출력
string apiUrl = builder.Configuration["ApiUrl"];
string theme = builder.Configuration["Theme"];
string userId = builder.Configuration["UserId"];
Console.WriteLine($"Environment: {env.EnvironmentName}");
Console.WriteLine($"User: {userName}");
Console.WriteLine($"ApiUrl: {apiUrl}");
Console.WriteLine($"Theme: {theme}");
Console.WriteLine($"UserId: {userId}");
var app = builder.Build();
app.MapGet("/", () => $"Hello from {env.EnvironmentName}, User: {userName}");
app.Run();
✅ 3. 예제 설정 파일들
appsettings.json
{
"ApiUrl": "https://default.api.com",
"Theme": "Light"
}
appsettings.Development.json
{
"ApiUrl": "https://dev.api.com"
}
user.settings.json
{
"UserId": "guest"
}
user.john.json
(사용자 이름이 "john"일 경우)
{
"UserId": "john.doe",
"Theme": "Dark"
}
🛠️ 기타 설정 팁
user.{UserName}.json
같은 파일은Copy to Output Directory
→Copy always
로 설정실행 시 환경 변수 설정 예:
set ASPNETCORE_ENVIRONMENT=Development
728x90
반응형
'ChatGPT 대답' 카테고리의 다른 글
ASP.NET C#에서 NAS(Network Attached Storage)에 파일을 쓰는 방법 (0) | 2025.05.31 |
---|---|
C# appSetting 파일로 분리 (0) | 2025.05.31 |
암호 종류(ChatGPT 작성) (0) | 2024.08.19 |
메타버스 역사(ChatGPT 작성) (0) | 2024.08.17 |
메타버스 소개(ChatGPT 작성) (0) | 2024.08.17 |