.NET 에서 프로젝트를 시작할 때, 반복적으로 작성하던 사항을 패키지로 정리했습니다.
기본 네임스페이스로 kr.bbon.Core 를 사용합니다.
값 변환을 위한 기능을 제공하는 네임스페이스입니다.
API 예외를 표현하기 위해 사용됩니다.
public Task SomeFeatureAsync()
{
if(NotValid){
var model = new ErrorModel("It's invalid message");
throw new ApiException(400, model);
}
// ...
}ApiException class 를 사용하십시오.
HTTP 예외를 표현하기 위해 사용됩니다.
// Exception handling in action method
try
{
// ...
}
catch(HttpStatusException ex)
{
return StatusCode(ex.StatusCode, ex.Message, ex.GetDetails());
}
catch(Exception ex)
{
// ...
}ApiException class 를 사용하십시오.
HTTP 예외와 상세 정보를 표현하기 위해 사용됩니다.
throw new HttpStatusException(HttpStatusCode.BadRequest, new SomeDetails
{
Id = "err111",
Message = "AAA 속성의 값이 정수가 아닙니다.",
});ApiException class 를 사용하십시오.
사용자 정의 예외를 표현하기 위해 사용합니다.
// Exception handling in action method
try
{
// ...
}
catch(SomethingWrongException ex)
{
return StatusCode(HttpStatusCode.Forbidden, ex.Message, ex.GetDetails());
}
catch(Exception ex)
{
// ...
}ApiException class 를 사용하십시오.
사용자 정의 예외와 상세 정보를 표현하기 위해 사용합니다.
throw new SomethingWrongException("데이터를 처리하지 못했습니다.", new SomeDetails
{
Id = "err111",
Message = "AAA 속성의 값이 정수가 아닙니다.",
});Object 클래스에 ToJson 메서드를 추가합니다.
객체의 인스턴스를 JSON 문자열로 직렬화하는 기능을 제공합니다.
var sample = getSampleModel();
sample.ToJson();JsonSerializerOptions 매개변수가 지정되지 않은 경우 아래 기본값을 사용합니다.
var defaultOptions = new JsonSerializerOptions
{
WriteIndented = true,
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
};자바스크립트 밀리초 값을 DateTimeOffset 으로 변환합니다.
DateTimeOffset 값을 자바스크립트 밀리초 값으로 변환합니다.
JavascriptDateConverter converter = new JavascriptDateConverter();
var javascriptDateValue = 1624165031491;
var datetimeOffsetValue = converter.ToDateTimeOffset(javascriptDateValue);
var milliseconds = converter.ToJavascriptDateMilliseconds(datetimeOffsetValue);
Assert.Equal(javascriptDateValue, milliseconds.Value);현재 AppDomain 의 어셈블리중 입력된 조건을 만족하는 어셈블리 목록을 수집합니다.
var predicte = new Func<Type, bool>(t => t.Name == nameof(ApiException));
var assemblies = ReflectionHelper.CollectAssembly(predicte);현재 AppDomain 의 타입중 조건을 만족하는 타입 목록을 수집합니다.
var predicte = new Func<Type, bool>(t => t.Name == nameof(ApiException));
var types = ReflectionHelper.CollectTypes(predicte);