2017-05-12 7 views
0

우리는 다양한 10 진수 (및 기타) 특성을 갖는 여러 개의 복잡한 클래스가 있습니다. 소수점 속성의 수십, 그들은 3 특정 서식 규칙 아래의 모든 가을 :DataAnnotation을 사용하여 JSON을 직렬화하여 10 진수 서식 규칙을 적용하십시오.

  1. 제로 선도 0 개, 1 개 소수 자릿수
  2. 선도, 소수 둘째 자리
  3. 없음 제로, 소수점 이하 세 자리
을 선도하지

[DecimalFormatRule (Rule = "x.000")]과 같은 서식 규칙을 지정하기 위해 사용자 지정 특성을 사용하여 다양한 DTO 십진 속성을 꾸미고 싶습니다.

동일한 DTO에 대해 정의 된 수백 개의 다른 속성의 직렬화/직렬화를 방해하지 않고 장식 된 속성에 이러한 서식 규칙을 적용하려면 어떻게해야합니까?

형식 규칙을 적용 할 수있는 클래스, 서식 규칙을 유지하기위한 문자열 속성이있는 사용자 지정 특성 및 특성을 찾는 사용자 지정 serializer가 필요하며 이러한 속성 만 처리해야한다고 생각합니다. 이것은 가능한가?

더 좋은 방법이 있습니까? 필자는 자신 만의 시리얼 라이저를 작성하는 것을 꺼려합니다. 가능한 한 멋진 ServiceStack 코드를 활용하는 것을 선호합니다.

+0

가능한 중복을 [ JsonSerializer - 'N2'형식으로 소수 자릿수 직렬화] (http://stackoverflow.com/questions/17871720/jsonserializer-serialize-decimal-places-with-n2-formatting) – OmG

답변

1

이 ServiceStack에없는 재산 수준의 주석 포맷을 사용할 수 있지만 당신은 ignoring the decimal property처럼 뭔가를하고 원하는 형식을 반환하는 추가 문자열 속성 게터, 예를 들어 추가 할 수의

public class Dto 
{ 
    [IgnoreDataMember] 
    public decimal Decimal { get; set; } 

    public string DecimalFormat => Decimal.ToString("0.##"); 
}