Json.Net에는 하위 클래스의 재정의 된 속성을 직렬화하는 데 문제가 없습니다.Json.Net에서 new로 선언 된 상속 된 속성을 직렬화하지 않습니다.
public override ICollection<Person> Persons { get; set; }
하지만 재산에 new
를 사용하려고하면, 직렬화가 실패합니다. 예외는 없습니다. Persons
은 결코 직렬화되지 않습니다.
public new ICollection<Person> Persons { get; set; }
왜 그렇습니까?
는 (이 예는 내가 아는 많은 이해가되지 않습니다. 그것은 단지 예입니다. 목표는 나중에 재산public new ICollection<PersonDto> Persons { get; set; }
의 데이터 유형을 변경 할 수 있습니다)
정의 된 속성은 어떤 클래스입니까? 그리고 어떤 클래스에서 같은 이름을 가진'new' 속성을 정의합니까? 그리고 어떤 수업을 직렬화합니까? 속성을'new'로 정의하면 기본 클래스로 직렬화 할 수 없습니다. 기본 클래스의'Persons' 속성은 초기화되지 않았거나 null이거나 빈 콜렉션 인 반면 (코드 나머지 부분에 따라 다름) 파생 클래스의'Persons' 속성은 기본 클래스의 일부로 표시되지 않으므로 직렬화되지 않습니다. – CodeCaster
왜이 작업을 수행하려고합니까? 'Person'을위한 커스텀 컨버터를 사용하지 않는 것이 더 합리적일까요? – svick
@svick 나는 사용자 지정 변환기가 무엇인지 알지 못합니다. 내게 가르쳐주세요! – FatAlbert