.NET Core 2.2 에 추 가 된 일부 기능 사용 맛 보기 안내
미국 현지 시간 으로 12 월 4 일 에 마이크로소프트 2019 개발 자 대회 에서 일련의 무 거 운 소식 을 발 표 했 습 니 다.소프트 하드웨어 와 오픈 소스 커 뮤 니 티 의 각종 좋 은 소식 은 천 지 를 뒤 덮 었 습 니 다.일반적인 개발 자로 서 저 는 가장 먼저.NET Core 2.2 의 소스 코드 를 다운 받 았 습 니 다.배포 설명 에 대해 조목조목 조회 하고 자주 사용 하 는 기능 을 일부 캡 처 하여 시 도 했 습 니 다.다음은 여러분 과 나 누 겠 습 니 다.더 이상 할 말 이 없 으 니 상세 한 소 개 를 해 봅 시다.
1.API 인터페이스 에 대한 대소 문자 통합 지원
1.1 다음 인터페이스 코드 보기
[HttpGet]
public ActionResult<UserInfo> Get()
{
return new UserInfo() { Name = "Ron.liang", RegTime = DateTime.Now };
}
[HttpGet("{id}")]
public ActionResult<Dictionary<string, string>> Get(int id)
{
return new Dictionary<string, string> {
{ "Name", "Ron.liang" },
{ "RegTime", DateTime.Now.ToString() }
};
}
// 1
{
name: "Ron.liang",
regTime: "2018-12-05T10:40:37.5090634+08:00"
}
// 2
{
Name: "Ron.liang",
RegTime: "2018-12-05T10:40:58.5072645+08:00"
}
1.2 기본 적 인 상황 에서 사전 내 필드 이름 은 CamelCaseNamingStrategy 에 적용 되 지 않 습 니 다.따라서 필드 이름 의 대소 문 자 를 통일 시 키 려 면 Configure Services 에 AddJSonOptions(o=>o.UseCamelCasing(true)를 추가 할 수 있 습 니 다.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddJsonOptions(o => o.UseCamelCasing(false)).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
AddJSonOptions 에 두 개의 기본 확장 자 를 내장 합 니 다.UseCamelCasing 이나 UseMemberCasing 을 사용 할 수 있 습 니 다.UseMemberCasing 을 사용 하면 구성원 필드 의 대소 문자 규칙 을 사용 합 니 다.대소 문자 출력 을 변경 하지 않 습 니 다.1.3 재 미 있 는 것 은 AddJSonOptions(o=>o.UseCamelCasing(true)의 현식 전입 값 방식 은 JamesNK 라 는 친구 가 조정 한 결과 이다.상세 한 내용 은 다음 과 같다.
https://github.com/aspnet/Mvc/pull/7962
2.복합 검증-검증 모델 의 확장
1.1 이전 버 전에 서 하나의 속성 에 여러 개의 인증 을 적용 하려 면 여러 개의 인증 류 를 작성 해 야 합 니 다.예 를 들 어
public class UserInfo
{
[StringLength(20), RegularExpression(@"^[a-zA-Z]$")]
public string Name { get; set; }
[StringLength(20), RegularExpression(@"^[a-zA-Z]$")]
public string Title { get; set; }
public DateTime RegTime { get; set; }
}
2.2.NET Core 2.2 이후 버 전에 서 확장 을 통 해 이 문 제 를 피 할 수 있 습 니 다.ValidationProvider Attribute 를 계승 하고 GetValidationAttributes 방법 을 다시 써 서 복합 검증 을 실현 할 수 있 습 니 다.
public class UserInfo
{
[Name]
public string Name { get; set; }
[Name]
public string Title { get; set; }
public DateTime RegTime { get; set; }
}
public class NameAttribute : ValidationProviderAttribute
{
public override IEnumerable<ValidationAttribute> GetValidationAttributes()
{
return new List<ValidationAttribute>
{
new RequiredAttribute(),
new RegularExpressionAttribute(pattern: "[A-Za-z]*"),
new StringLengthAttribute(maximumLength: 20)
};
}
}
2,3.깔끔 해 보이 지 않 아 요?3.API Controller 기본 응답 처리 유형 추가
3.1 이전 버 전에 서 는 API 에 특성 을 추가 한 Produces Response Type 을 통 해 서로 다른 HttpCode 응답 을 처리 할 수 있 었 다.그리고 pranavkm 는 우리 가 Swagger/OpenApi 처럼 기본 응답 처리 유형 을 추가 해 야 한다 고 생각 한 다음 에 나 타 났 다.
namespace Microsoft.AspNetCore.Mvc
{
/// <summary>
/// A filter that specifies the type of the value and status code returned by the action.
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class ProducesResponseTypeAttribute : Attribute, IApiResponseMetadataProvider
{
....
}
3.2 솔직히 말 해서 위의 이런 유형 을 저 는 어떻게 사용 하 는 지 모 르 겠 습 니 다.아 는 친구 가 있 으 면 댓 글 에 답 해 주세요.저 는 이 를 글 에 넣 겠 습 니 다.감사합니다.4.Razor 보기 부분 최적화
4.1.NET Core 팀 은 Razor 보기에 서@Html.Parital 을 사용 하여 지부 보 기 를 도입 하면 잠재 적 인 잠 금 상태 가 있 을 수 있다 고 판단 하여@Html.Parital 을
// :
@Html.Partial("_StatusMessage", Model.StatusMessage)
// :
<partial name="_StatusMessage", for="StatusMessage" />
4.2 지금.NET Core 2.2 를 사용 하여 새로운 MVC 프로젝트 를 만 들 려 고 시도 한다 면 이 변 화 를 바로 볼 수 있 을 것 이다.5.갈고리
5.1 환경 변 수 를 설정 함으로써 프로그램 Main 방법 이 실행 되 기 전에 업무 논 리 를 수행 할 수 있 습 니 다.그러나.NET Core 팀 은 이 기능 은 저급한 갈고리 일 뿐 복잡 한 업무 에 사용 하지 말고 필요 하 다 면 의존 주입 을 사용 해 야 합 니 다.시간 이 있 으 면 다시 시도 해 보면 재 미 있 을 것 입 니 다.
결어
.NET Core 2.2 버 전에 서 많은 성능 상의 최적화 가 있 는데 오픈 소스 커 뮤 니 티 의 힘 이 정말 강하 다 는 것 을 알 수 있다.본 고 는 일부 자주 사용 하 는 기능 만 골 라 서 시 도 했 기 때문에 앞으로 더 많은 친구 들 이 공유 할 것 이 라 고 믿는다.
하루빨리
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AS를 통한 Module 개발1. ModuleLoader 사용 2. IModuleInfo 사용 ASModuleOne 모듈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.