.NET 6 부터 C# language version 10을 지원합니다. 여러 개선 사항중에 Lambda expression에 몇가지가 개선이 되었는데요, 한 번 알아보겠습니다. 원문 링크: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/lambda-expressions#explicit-return-type 1. Natural type of a lambda expression 아래와 같이 가변형 변수에 람다식을 할당하면 이전 버전에서는 에러를 뿜어내서 var 대신 Func로 타입을 명시적으로 선언해줘야 하는 불편함이 있었는데 컴파일러가 이제 조금 똑똑해져서 람다 표현식으로 부터 추론해서 리턴하는 값이 타입을 알아서..
지난번 글에서 ObservableObject를 상속받는 MainWindowViewModel class를 ViewModels 폴더에 생성하고 MainWindow.xaml 뷰의 DataContext에 바인딩 하는것 까지 설명을 했습니다. 자, 이렇게 생성된 ViewModel에 멤버 변수들을 선언하고 이것들을 View에 TextBox 컨트롤에 바인딩을 먼저 해보겠습니다. 기존 MVVM 패턴으로 코딩할때 가장 짜증스러운 부분이 View와 Binding하기위해 멤버변수를 선언하고 값이 변경되면 PropertyChange 이벤트를 Notify해주는 코드를 변수 하나 하나 마다 아래와같이 선언해 줘야했습니다. namespace MyTestApp.ViewModels { public class MainWindowView..
※. Visual Studio 2022 기준 스크린 샷입니다. 1. Visual Studio를 열고 새로운 WPF 프로젝트를 하나 생성합니다. WPF로 검색해서 WPF Application 프로젝트 템플릿을 찾아서 선택합니다. 프로젝트 생성 경로와 솔루션 이름 프로젝트명을 지정합니다. 여기서는 .Net 6.0 이상을 기준으로 설명하므로 6.0을 선택합니다. 프로젝트 생성이 완료되면 Solution Explorer에 아래와같이 생성된 솔루션과 프로젝트 내의 파일을 확인합니다. 2. NuGet Package 설치하기 NuGet Package Manager에서 아래 패키지들을 설치하거나 Solution Explorer에서 프로젝트(MyTestApp)를 double-click해서 프로젝트 파일을 열어 아래의 P..
아래 코드를 추가해주면 됩니다. builder.Services.AddSwaggerGen(c => { c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT", In = ParameterLocation.Header, Description = "JWT Authorization header using the Bearer scheme." }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurit..
ASP.Net에서 WebAPI endpoint 호출시 JSON형식 응답 메세지의 property name을 camel case로 변환하도록 기본 설정되어 있습니다. C#에서는 public class 멤버 변수의 이름을 Pascal Case를 주로 쓰기 때문에 camel case 변환을 원하지 않는 경우 아래 코드를 program.cs 파일에 추가해주시면 됩니다. builder.Services .AddControllersWithViews() .AddJsonOptions(opt => opt.JsonSerializerOptions.PropertyNamingPolicy = null);
초기 WebAPI 프로젝트를 할 때 테스트를 위해 모든 origin을 허용하는 CORS 설정이 필요할 때가 있습니다. 아래와 같이 간단히 "corsapp" 이름의 policy를 하나 추가한 다음 builder 빌드 후에 app.UseCors를 호출해주면 됩니다. builder.Services.AddCors(p => p.AddPolicy("corsapp", builder => { builder.WithOrigins("*").AllowAnyMethod().AllowAnyHeader(); })); var app = builder.Build(); app.UseCors("corsapp");