Json.Net에서 Private Setter 동작 구성
Json.Net은 개인 Setter를 처리하는 속성을 제공하지만 이 기능에 대한 기본 옵션입니다. 종종 추구됩니다. 소스 코드 수정이 없으면 다음과 같은 질문이 생깁니다. 이 동작을 달성하기 위해 구성 가능한 설정이 있습니까?
답변
옵션 1: [ JsonProperty] 속성
특정 속성에 의존하는 대신 간단히 [JsonProperty] 특성을 사용하면 역직렬화 중에 읽기 전용 속성을 채우는 데 도움이 됩니다. 예:
[JsonProperty] public Guid? ClientId { get; private set; }
옵션 2: 생성자 기반 솔루션
대체 접근 방식은 개인 속성과 일치하는 매개 변수를 사용하여 생성자를 생성하는 것입니다.
public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } }
이를 통해 다음이 가능해집니다.
string json = "{ \"bar\": \"Stack Overflow\" }"; var deserialized = JsonConvert.DeserializeObject<Foo>(json); Console.WriteLine(deserialized.Bar); // Stack Overflow
이 접근 방식의 장점 include:
위 내용은 Json.Net은 소스 코드를 수정하지 않고 Private Setter 동작을 구성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!